【问题标题】:dynamically getting reply from ajax/jquery动态地从 ajax/jquery 获取回复
【发布时间】:2014-07-03 20:24:59
【问题描述】:

我创建了用户输入 arabic 文本的应用程序,我将其转换为 english [音译]。 当用户单击按钮时会发生这种情况。

我希望它动态转换。我的意思是当用户输入任何字符时,它应该立即对输入的文本执行音译,当用户继续输入文本时,应该附加音译。

我使用了 ajax,它接受用户输入并将其发布到 php 脚本以进行音译。来自我在结果框中显示的脚本的回复。

这是我为 button click 事件执行操作的方式

    $( "#en2ar" ).click(function() {
            //var cat = $("#cats option:selected").html();
//          alert(test);
            var english = document.getElementById("english").value;
            //alert (arabic)
            en2ar(english);
            return false;
            });

        function en2ar(english)
        {               
            var xmlhttp;
            arabic.value = '';
            if (window.XMLHttpRequest)
            {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp=new XMLHttpRequest();
            }
            else
            {
                // code for IE6, IE5
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }           
            xmlhttp.onreadystatechange=function()
            {
                //document.getElementById("old-records").innerHTML = "";                
                if (xmlhttp.readyState == 4 && xmlhttp.status==200)
                {
                    var div2 = document.getElementById("arabic");
                                div2.innerHTML = xmlhttp.responseText;
                }
            }
            xmlhttp.open("POST","processAra.php");          
            xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            xmlhttp.send('arabic=' + english + '&type=' + 'en' ) ;          
            //alert(arabic);
        }               

【问题讨论】:

  • 有什么问题?在输入字段的 keyup 处理程序中运行您的代码。
  • 你为什么不使用$.ajax() 而不是那些冗长的Javascript?
  • 你可以使用keyup功能
  • @Barmar:谢谢,我把它当作复杂的工作,keyup 我没想到

标签: javascript php jquery ajax


【解决方案1】:

代替

 $( "#en2ar" ).click(function() {

使用

 $( "#en2ar" ).keyup(function() {

只要用户写一些文本,它就会得到文本。

【讨论】:

  • #en2ar 是一个按钮,而不是输入字段。
  • 将 #en2ar 替换为您用于输入字段的任何 id...虽然这会消耗大量带宽...所以您可以改用模糊...这只会转换当用户从输入字段中移除焦点时......虽然这完全取决于您的要求
【解决方案2】:
$("#english").keyup(function() {
        var english = $("#english").val();
            //alert (arabic)
            en2ar(english);
            return false;     
});

你可以使用按键功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    相关资源
    最近更新 更多