【问题标题】:cannot trigger submit from javascript无法从 javascript 触发提交
【发布时间】:2012-04-03 14:00:34
【问题描述】:

我正在尝试为搜索框创建一个弹出窗口并提交关键字 用表格。我在互联网上浏览类似的问题,但我应用的唯一解决方案是 删除表单的提交元素。它也没有成功。有什么想法吗?

在 django 上工作,我可以提供更多详细信息。

我的 javascript 的某些部分如下所示:

             $( "#dialog-form" ).dialog({
               autoOpen: false,
               height: 200,
               width: 200,
               modal: true,
               buttons: {
                   "Search": function() {
                       var bValid = true;
                       allFields.removeClass( "ui-state-error" );

                       bValid = bValid && checkLength( keyword, "username", 2, 16 );

                       bValid = bValid && checkRegexp( keyword, /^[a-z]([0-9a-z_])+$/i, "Keyword may consist of a-z, 0-9, underscores, begin with a letter." );

                       if ( bValid ) {
                           document.getElementById('searchForm_1_keyword').value =  keyword.val();
                           document.getElementById('searchForm').submit(); //if I comment out this line it continues the next line, if not, it does not execute the next line


                            $( "#testDiv" ).append( "<tr>" +
                            "<td>" + keyword.val() + "</td>" +
                            "</tr>" );

                             alert(keyword.val());
                             $( this ).dialog( "close" );
                       }
                   },
                   Cancel: function() {
                       $( this ).dialog( "close" );
                   }
               },
               close: function() {
                   allFields.val( "" ).removeClass( "ui-state-error" );
               }
           });

html 看起来像这样:

                   <div class="searchBox">
                         <form id='searchForm' method="POST" action="/dasdasasdas/" >{% csrf_token %}
                            <input type="text" name="column_name" value='supplier_name'>
                            <input type="text" name="keyword" id="searchForm_1_keyword" value=""/>
                         </form>
                   </div>

这些是我的 jquery 文件:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.8.18/jquery-ui.min.js" type="text/javascript"></script>

找到解决方案!

我犯了一个菜鸟错误。我有嵌套表格。当我纠正这个错误时,它确实有效。

【问题讨论】:

    标签: javascript html forms javascript-events


    【解决方案1】:

    你为什么要使用

    document.getElementById('searchForm').submit()
    

    什么时候可以访问 jQuery?你可以这样做:

    $("#searchForm").submit()
    

    【讨论】:

    • 试过那个。执行下一行但没有触发 submit()
    • 在提交表单时是否有附加到表单的事件处理程序?也许其他东西正在取消表单?
    • 我没有事件处理程序。我应该有一个吗?
    • 完全没有,只是想知道是否有任何东西取消了表单的提交。您确定 searchForm 是此表单的唯一 ID 吗?当前页面上只有一个具有该唯一 ID 的表单?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多