【问题标题】:form button, ajax, enter key, form submit表单按钮,ajax,输入键,表单提交
【发布时间】:2011-01-26 07:37:36
【问题描述】:

我在页面上有上述内容,如果我单击按钮,我的 ajax 功能可以正常工作。但是,如果我按“enter”,表单会提交但没有任何反应 - 毫无疑问,因为该函数称为“onclick”

有什么办法可以改变这种情况,让用户可以点击按钮,或者在键盘上按下回车键,并让表单正确提交到 ajax?

谢谢


更新:

    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            var ajaxDisplay = document.getElementById('ajaxDiv');
            ajaxDisplay.innerHTML = ajaxRequest.responseText;
        }
    }
    var gold = document.getElementById('gold_amount').value;
    var carat = document.getElementById('carat').value;

    var queryString = "?gold=" + gold + "&carat=" + carat;
    ajaxRequest.open("GET", "script.php" + queryString, true);
    ajaxRequest.send(null); 

}

//-->

【问题讨论】:

    标签: ajax forms submit


    【解决方案1】:

    您的表单标签上有 onsubmit 事件。它在表单 si 提交时被提出(当你按 enter 时也是如此)。

    http://www.w3schools.com/jsref/event_form_onsubmit.asp

    【讨论】:

    • 并将按钮的类型设为submit
    • 请查看原始帖子中的更新代码
    【解决方案2】:

    Javascript 有一个 onKeydown 方法,通过它您可以捕获 Enter 键的点击。

    <body>
    <form action="" method="POST" id="myForm">
    <input type="text" name="myText" onKeyDown="changeVal()">
    
    <script type="text/javascript" language="JavaScript">
    s1 = new String(myForm.myText.value)
    
    function changeVal() {
         s1 = "You pressed a key"
        myForm.myText.value = s1.toUpperCase() 
    } 
    
    </script>
    </form>
    </body>
    

    【讨论】: