Javascript 带有If/Else语句的Jquery验证规则
这段代码可以工作,但我需要它在id字段上基本上执行If-Else。如果id长度大于0,则不要根据需要检查名称、zipcode。如果id不大于0,则根据需要检查名称、zipcode等。欢迎你的建议。谢谢Javascript 带有If/Else语句的Jquery验证规则,javascript,jquery,ajax,jquery-validate,validationrules,Javascript,Jquery,Ajax,Jquery Validate,Validationrules,这段代码可以工作,但我需要它在id字段上基本上执行If-Else。如果id长度大于0,则不要根据需要检查名称、zipcode。如果id不大于0,则根据需要检查名称、zipcode等。欢迎你的建议。谢谢 runAllForms(); $(function () { $("#artist_create_event").validate({ // Rules for form validation rules : { artist_cre
runAllForms();
$(function () {
$("#artist_create_event").validate({
// Rules for form validation
rules : {
artist_create_event_name : {
required : true
},
artist_create_event_desc : {
required : true
},
id : {
required : true
},
name : {
required : true
},
zipcode : {
required : true
},
venue_name : {
required : true
},
city : {
required : true
},
state : {
required : true
},
location : {
required : true
},
event_address : {
required : true
}
},
// Messages for form validation
messages : {
artist_create_event_name : {
required : 'Enter Event Name'
},
artist_create_event_desc : {
required : 'Enter Event Description'
},
name : {
required : 'Enter Venue Name'
},
zipcode : {
required : 'Please enter Zipcode/Postalcode'
},
venue_name : {
required : 'Enter Venue Name'
},
city : {
required : 'Please enter City'
},
state : {
required : 'Please enter State'
},
location : {
required : 'Please enter Country'
},
event_address : {
required : 'Please enter Address'
}
},
// Do not change code below
errorPlacement : function(error, element) {
error.insertAfter(element.parent());
},
// Ajax form submition
submitHandler: function() {
$('#artist_create_event').hide(0);
$('#art_event_message').hide(0);
$.ajax({
url : 'artist_update_event.php',
type : 'POST',
dataType : 'json',
data: {
artist_create_event_name: $('#artist_create_event_name').val(),
artist_create_event_desc: $('#artist_create_event_desc').val(),
name: $('#name').val(),
city: $('#city').val(),
state: $('#state').val(),
location: $('#location').val(),
zipcode: $('#zipcode').val(),
event_address : $('#event_address').val(),
event_address2 : $('#event_address2').val()
},
success : function(data){
$('#art_event_message').removeClass().addClass((data.error === true) ? 'error' : 'success')
.text(data.msg).show(500);
if (data.error === true) {
if (data.goto == 1) {
delete json;
}
else {
$('#artist_create_event').show(500);
delete json;
}
}
if (data.error === false) {
$('#artist_create_event').show(500);
delete json;
}
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
$('#art_event_message').removeClass().addClass('error')
alert('The error was: '+errorThrown);
alert('The error was: '+XMLHttpRequest);
alert('The error was: '+textStatus);
// .text('response.Text').show(500);
$('#artist_create_event').show(500);
}
});
return false;
}
});
});
假设该id是文本框的id。您可以这样做:
name : {
required : $("#id").val().length <= 0
},
zipcode : {
required : $("#id").val().length <= 0
},
名称:{
required:$(“#id”).val().length假设id
是输入字段的名称,则可以将required的值作为以下给定的函数传递
var $id = $('input[name="id"]')
$("#artist_create_event").validate({
// Rules for form validation
rules: {
artist_create_event_name: {
required: true
},
artist_create_event_desc: {
required: true
},
id: {
required: true
},
name: {
required: function () {
return $id.val().length > 0;
}
},
zipcode: {
required: function () {
return $id.val().length > 0;
}
},
venue_name: {
required: true
},
city: {
required: true
},
state: {
required: true
},
location: {
required: true
},
event_address: {
required: true
}
},
// Messages for form validation
messages: {
artist_create_event_name: {
required: 'Enter Event Name'
},
artist_create_event_desc: {
required: 'Enter Event Description'
},
name: {
required: 'Enter Venue Name'
},
zipcode: {
required: 'Please enter Zipcode/Postalcode'
},
venue_name: {
required: 'Enter Venue Name'
},
city: {
required: 'Please enter City'
},
state: {
required: 'Please enter State'
},
location: {
required: 'Please enter Country'
},
event_address: {
required: 'Please enter Address'
}
},
// Do not change code below
errorPlacement: function (error, element) {
error.insertAfter(element.parent());
},
// Ajax form submition
submitHandler: function () {
$('#artist_create_event').hide(0);
$('#art_event_message').hide(0);
$.ajax({
url: 'artist_update_event.php',
type: 'POST',
dataType: 'json',
data: {
artist_create_event_name: $('#artist_create_event_name').val(),
artist_create_event_desc: $('#artist_create_event_desc').val(),
name: $('#name').val(),
city: $('#city').val(),
state: $('#state').val(),
location: $('#location').val(),
zipcode: $('#zipcode').val(),
event_address: $('#event_address').val(),
event_address2: $('#event_address2').val()
},
success: function (data) {
$('#art_event_message').removeClass().addClass((data.error === true) ? 'error' : 'success')
.text(data.msg).show(500);
if (data.error === true) {
if (data.goto == 1) {
delete json;
} else {
$('#artist_create_event').show(500);
delete json;
}
}
if (data.error === false) {
$('#artist_create_event').show(500);
delete json;
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$('#art_event_message').removeClass().addClass('error')
alert('The error was: ' + errorThrown);
alert('The error was: ' + XMLHttpRequest);
alert('The error was: ' + textStatus);
// .text('response.Text').show(500);
$('#artist_create_event').show(500);
}
});
return false;
}
});
Ternery运算符从不需要这样的?false:true
-它可以简单地表示为布尔{required:$(“#id”).val().length id是一个隐藏字段。如果用户选择自动完成,则id有一个值,否则id为空。如果有值,则只将id传递给ajax,如果没有值,则传递其他所有内容。因此,我需要对规则和消息执行If,但还需要仅传递id或使用json传递其他所有内容。谢谢规则依赖于名称
而不是id
,插件有依赖
方法。隐藏字段不能设置为必需的
。您不能设置必需的
,否则将在运行时设置。如果它是隐藏字段,它应该是这样工作的。您检查了答案吗?@Grant NoelHI Masum7,是的,它似乎在规则中工作。谢谢。我还需要在ajax调用中做一些类似的事情,通过json传递信息。我只想传递设置好的id,否则传递所有其他信息。有什么想法吗。谢谢,GrantThanks。我会尝试一下,然后报告回来。谢谢,@GrantNoel您可能需要检查$id.val().length>0
基于您需要的内容…例如检查是否在id
字段中输入了任何内容,或者它没有值'
或0
@GrantNoel如果传递的函数返回true,则该字段是必需的,否则不需要