gpt4 book ai didi

jquery validate form.submit() 行为奇怪

转载 作者:行者123 更新时间:2023-12-01 08:23:03 24 4
gpt4 key购买 nike

我正在使用 JQuery 的验证插件来验证表单。进行验证并触发submitHandler。但后来我得到了这个错误(来自 IE8):

Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) Timestamp: Fri, 20 May 2011 16:30:56 UTC

Message: Object doesn't support this property or method

它在 Firefox 中正常工作 - 完全没有错误。知道为什么 form.submit() 方法不起作用吗?

JQuery
$(document).ready(function() {
$.validator.addClassRules('valcount',{digits: true, min: 1});

//Fish Form
$("form[name='fish']").validate({
debug: true,
ignore: ":hidden,[name='']", // do not validate form fields in invisible sections
errorPlacement: function(error, element) {
if ( element.is(":radio") ) {
error.appendTo( element.parent().next().next() );
}else if(element.is(":checkbox") && element.parent().is('li')){
error.insertBefore(element.closest("ul.horiz"));
}else{
error.appendTo(element.parent());
};
},
rules: {
fish_name: {required:true, minlength:5},
care_id: {required: true, digits: true, min: 1},
strain_id: {required: true, digits: true, min: 1},
transgene_id: {digits: true, min: 0}
},
// set this class to error-labels to indicate valid fields
success: function(label) { // set   as text for IE
label.html(" ").addClass("checked");
},
submitHandler: function(form){
if(confirm('Are you sure?'))form.submit(); //PROBLEM var has no such method
}
});

});// end $(document).ready(function(){

表单 HTML

<form action='http://example.com' method='post' name='fish' id='fish'>
<input name='fish_id' type="hidden" value="39" >

<div><label for='fish_name'>Fish Name</label><input name='fish_name' id='fish_name' type='text' value='110208'></div>
<div><label for='fishnotes'>Notes</label><textarea name='notes' id=fishnotes></textarea></div>
<div><label for='care_id'>Animal Care Protocol</label><select name='care_id' id='care_id'><option value='1' selected="selected">Breeding Colony</option>
</select></div>
<div><label for='strain_id'>Strain</label><select name='strain_id' id='strain_id'><option value='1' selected="selected">AB wt</option>
<option value='2' >Tub wt</option>
<option value='14' >AB/Tub</option>
<option value='15' >AB/Tub deadhead</option>
<option value='16' >Casper</option>
</select></div>
<div><label for='transgene_id'>Transgene</label><select name='transgene_id' id='transgene_id'><option value=0>None</options><option value='1' >Ztag</option>
<option value='2' >KDR-eGFP</option>
<option value='3' >BTIAR-eGFP</option>
<option value='4' >BTIA-eGFP</option>
<option value='5' >BTTP3.1-eGFP</option>
<option value='6' >BTTP6.2-eGFP</option>
<option value='7' >BTIAR-Luc</option>
<option value='8' >BTIA-Luc</option>
<option value='9' >BTTP3.1-Luc</option>
<option value='10' >BTTP6.2-Luc</option>
<option value='11' >Tg(hsp70tolgfp)v28</option>
<option value='16' >blither</option>
</select></div>

<div><input value='Edit' type='submit' ></div>
</form>

已编辑:删除了提交名称和 ID,添加了有关 FF 的信息。尝试使用 $(form).submit() 而不是 form.submit() 。还是没有喜悦。

最佳答案

<input name='submit' id='submitfish' value='Edit' type='submit' >

您不能命名提交按钮“提交”。当您执行此操作并在 MSIE 中调用 form.submit() 时,MSIE 认为您正在尝试引用“不支持此属性或方法”的输入对象。

请记住,在 jQuery 中,$(this) 是一个 jQuery 对象,this 是实际的 DOM 元素。所以

submitHandler: function(form){

提交处理程序将表单作为 DOM 元素传递,这就是 form.submit() 在这里失败的原因。

关于jquery validate form.submit() 行为奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6075001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com