无法从javascript触发提交
我试图创建一个搜索框弹出窗口,并提交关键字 用表格。我在互联网上浏览类似的问题,但我申请的唯一解决方案是 正在删除表单的提交元素。也没有成功。有什么想法吗 我和django可以提供更多细节 我的javascript的某些部分如下所示:无法从javascript触发提交,javascript,html,forms,javascript-events,Javascript,Html,Forms,Javascript Events,我试图创建一个搜索框弹出窗口,并提交关键字 用表格。我在互联网上浏览类似的问题,但我申请的唯一解决方案是 正在删除表单的提交元素。也没有成功。有什么想法吗 我和django可以提供更多细节 我的javascript的某些部分如下所示: $( "#dialog-form" ).dialog({ autoOpen: false, height: 200, width: 200,
$( "#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" );
}
});
<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>
$(“#对话框窗体”).dialog({
自动打开:错误,
身高:200,
宽度:200,
莫代尔:是的,
按钮:{
“搜索”:函数(){
var bValid=真;
removeClass(“ui状态错误”);
bValid=bValid&&checkLength(关键字“用户名”,2,16);
bValid=bValid&&checkRegexp(关键字,/^[a-z]([0-9a-z])+$/i,“关键字可以由a-z、0-9、下划线组成,以字母开头。”);
if(bValid){
document.getElementById('searchForm_1_keyword')。value=keyword.val();
document.getElementById('searchForm').submit();//如果我注释掉这一行,它将继续下一行,如果没有注释,它将不执行下一行
$(“#testDiv”).append(”+
“”+关键字.val()+“”+
"" );
警报(关键字.val());
$(此).dialog(“关闭”);
}
},
取消:函数(){
$(此).dialog(“关闭”);
}
},
关闭:函数(){
allFields.val(“”.removeClass(“ui状态错误”);
}
});
html如下所示:
$( "#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" );
}
});
<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>
{%csrf_令牌%}
这些是我的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>
找到了解决办法
我犯了一个新手错误。我有嵌套的表单。当我纠正那个错误时,它确实起作用了 你为什么要使用
document.getElementById('searchForm').submit()
什么时候可以访问jQuery?您可以这样做:
$("#searchForm").submit()
我试过了。执行下一行,但未触发submit()。提交表单时,是否将事件处理程序附加到表单?可能是别的什么东西在取消表单?我没有事件处理程序。我应该要一张吗?一点也不,只是想知道是否有什么东西取消了表格的提交。您确定searchForm是此表单的唯一id吗?当前页面上只有一个表单具有唯一id?