0

这是我的HTML

<!DOCTYPE html>
<html>
   <head>
   </head>
   <body onload="load()">
       <script src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'></script>
       <script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js'></script>

       <div id="container">
           <form id="inputFrm" action="/hello" method="post">
               <input name="value" id="myValue" value=1000 size=8 />
               <input name="symbol" id="mySymbol" size=10 />
               <input type="submit">
               <input type="button" id="mySubmitBtn" value="MySubmit">
               </table>
           </form>
       </div>
       <script>
           $(document).ready(function() {
               $("#mySubmitBtn").click(function ()
               {
                   var value =document.forms["inputFrm"]["myValue"].value;
                   var symbol =document.forms["inputFrm"]["mySymbol"].value;

                   alert(value)
                   alert(symbol)

                   $("#inputFrm").submit();
               });
           });
       </script>
   </body>
</html>

此 HTML 代码代表由另一个页面打开的单独窗口。例如,假设服务器返回此 HTML 作为对“新”请求的响应:

window.open('/new')

在这个窗口中,表单不是由 jQuery 提交函数调用提交的。

我在这里做错了什么?

我查看了类似的帖子,但没有找到此特定代码的答案。

4

4 回答 4

3

对于 id 选择器,您需要#作为 id 的前缀。您可以在Category: Selectors中阅读有关选择器的更多信息。

现场演示

改变

$("inputFrm").submit();

$("#inputFrm").submit();

您还需要设置表单操作标签的URL,假设您要发布到:hello.php

<form id="inputFrm" action="hello.php" method="post">
于 2012-12-07T07:50:06.960 回答
1

@Adil 的回答解决了您的表单提交问题,但您还有另一个问题。您将 Javascript 附加到按钮单击而不是表单的提交事件。问题是如果用户按下回车键提交表单,您的 Javascript 代码将不会执行。

相反,您应该绑定到表单的.submit()事件:

        $('#inputFrm').submit(function(){

            var value =document.forms["inputFrm"]["myValue"].value;      
            var symbol =document.forms["inputFrm"]["mySymbol"].value;              

            alert(value)
            alert(symbol)

            return false;           
        });

return false如果您想阻止表单提交,也不要忘记。

于 2012-12-07T07:58:23.643 回答
0

当用户尝试提交表单时,提交事件被发送到元素。它只能附加到元素上。

HTML:

<form action="yourfile.html">
    <input type="text" value="Hello there" />
    <input type="submit" value="Go" />
</form>

jQuery:

$('form').submit(function() {
    alert('Handler for .submit() called.');
    return false;
});

http://api.jquery.com/submit/

另一种方法是做Ajax:

HTML

<form>
    <input type="text" value="" name="fname" />
    <input type="text" value="" name="lname" />
    <input type="submit" value="Go" />
</form>

jQuery:

$('form').submit(function() {
    $.ajax({
        url     : 'email.php',
        type    : 'POST',
        data    : $(this).serialize(),
        success : function (serverResponse) { /*success*/ },
        error   : function (jqXHR, textStatus, errorThrown) { /*handler errors*/ }
    });
});
于 2012-12-07T08:06:35.523 回答
0

做就是了 -

$("form#inputFrm").submit();
于 2012-12-07T07:50:54.263 回答