我收到错误:
TypeError: val.replace is not a function
显示主 jquery.js 文件,似乎无法追踪问题。我已经将我的代码剥离到了基本要素,试图找出问题,但无济于事。我所做的只是代码中的alert(data)
,但这并不会触发。相反,表单似乎重新提交,并在我的firebug的帖子选项卡中,有2个提交事件。如果有人能提出解决问题的方法,我将不胜感激。
我想补充一点,验证工作正常,但是当谈到提交处理程序时,这就是问题所在。
非常感谢
JS
$(function() {
$.validator.setDefaults({
errorClass: 'form_error',
errorElement: 'span',
ignore: ":hidden:not(select)",
errorPlacement: function(error, element) {
error.appendTo(element.siblings('span'));
}
});
$("#USRboxrtv").validate({
rules: {
requested: {
required: true
},
service: {
required: true
},
rtvdept: {
required: true
},
address2: {
required: true
},
box_rtv: {
required: true
}
},
messages: {
requested: {
required: '* required: You must enter your name'
},
rtvdept: {
required: "* required: You must select a department"
},
address2: {
required: "* required: You must select a customer address"
},
service: {
required: "* required: You must select a service level"
},
box_rtv: {
required: "* required: You must enter a box for retrieval"
}
},
submitHandler: function() {
if ($("#USRboxrtv").valid() === true) {
var data = $("#USRboxrtv").serialize();
alert(data);
}
}
});
});
html输入
<p>
<input name="submit" class="usersubmit" type="submit" value="Submit" />
<input name="formreset" class="usercancel" type="reset" />
</p>
答案 0 :(得分:1)
好的,因此错误消息是由此行var data = $("#USRboxrtv").serialize();
引起的。我无法告诉你它是什么原因,但如果你search this error on google,你会发现错误在序列化函数中。确保序列化工作满足必要条件。您尚未提供$("#USRboxrtv")
的HTML,因此我不确定此情况下的错误在哪里。顺便问一下,您使用的是最新版本的jquery吗?
val将返回一个字符串或未定义。我认为在你的情况下,val是未定义的,那是因为你收到了这个错误。
正如你在其中一篇文章中评论的那样:
$(".chosen-select").val('').trigger("chosen:updated");
在此代码中,您实际上是为$(".chosen-select")
分配了一个空值,导致此错误。