dac*_*oss 5 javascript forms validation jquery
我在同一个类的一个页面上有大约10个表单.每个表单都应该能够单独验证和发送.我正在使用jquery validate插件.我不能让它工作,所有表格都提交第一个.除此之外,我似乎无法使用$(this).find('.error')来确定表单中的errormessage div .html(error);
每个表单如下所示:
<form method="post" class="alertform" action="">
<input type="text" onclick="clearText(this)" value="" class="required email" name="email">
<input type="hidden" value="1000004011320719" name="productid" class="productid">
<input type="submit" class="button" name="button" value="Set alert">
<div class="error"> </div>
</form>
Run Code Online (Sandbox Code Playgroud)
我的JS:
$('.alertform').each( function(){
$(this).validate({
rules: {
emailadres: {
required: true,
email: true
}
},
messages: {
emailadres: {
required: "Message 1",
minlength: "Message 2",
email: "Message 3"
}
},
errorPlacement: function(error, element) {
$(this).find('.error').html(error);
},
success: function(label) {
label.addClass("valid").text("")
},
submitHandler: function() {
var emailadres = $(this).find("input.email").val();
var productid = $(this).find("input.productid").val();
var dataString = 'emailadres=' + emailadres + '&productid=' + productid;
$.ajax({
type: "POST",
url: "/setalert.php",
data: dataString,
success: function(msg) {
if (msg==1) {
$(this).find(".email").attr("value", "");
$(this).find('.error').html("Pricealert set.")
}
else {
$(this).find('.error').html("Oops.")
}
}
});
}
})
});
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏!
kor*_*oro 13
我看了你的HTML n JS,你能试试吗?
$('.alertform').each( function(){
var form = $(this);
form.validate({
Run Code Online (Sandbox Code Playgroud)
通过你的代码基本上将所有$(this)更改为表单
这是关于$(this)的常见错误,有时它失去了它的参考.
希望有所帮助
:)
完整的工作JS:
$('.alertform').each( function(){
var form = $(this);
form.validate({
rules: {
emailadres: {
required: true,
email: true
}
},
messages: {
emailadres: {
required: "Required",
minlength: "Fill it in",
email: "Not valid"
}
},
errorPlacement: function(error, element) {
element.nextAll('div').html(error);
},
success: function(label) {
label.addClass("valid").text("")
},
submitHandler: function() {
var email = form.find("input.email").val();
var productid = form.find("input.productid").val();
var dataString = 'email=' + email + '&productid=' + productid;
$.ajax({
type: "POST",
url: "/myurl.php",
data: dataString,
success: function(msg) {
if (msg==1) {
form.find(".email").attr("value", "");
form.find('.error').html("Thanks")
}
else {
form.find('.error').html("Something went wrong")
}
}
});
}
})
});
Run Code Online (Sandbox Code Playgroud)