我正在尝试根据在选择框中选择的内容快速激活/停用验证。
添加地址是可选的,如果选择了地址,则会显示国家和地区字段,并且 spry_country、spry_region 将需要验证。
价格是可选的,如果添加价格,则会显示价格和价格税字段,并且 spry_price 和 spry_price_tax 将需要验证等等。
我有以下代码似乎可以正常工作,但是,如果您选择地址然后改变主意然后决定不输入地址,该代码将隐藏字段但似乎仍然尝试验证隐藏字段,因为我无法提交表单. 希望这是有道理的:)
/* If address selected */
$("#location_option").change(function() {
if ($("#location_option").val() == "address"){
$(".show_location").show();
/* activate spry */
var spryselect4 = new Spry.Widget.ValidationSelect("spry_country", {isRequired:true});
var spryselect5 = new Spry.Widget.ValidationSelect("spry_region", {isRequired:true});
}
else{
$(".show_location").hide();
var spryselect4 = new Spry.Widget.ValidationSelect("spry_country", {isRequired:false});
var spryselect5 = new Spry.Widget.ValidationSelect("spry_region", {isRequired:false});
}
});
$("#location_option").change();
/* If price selected */
$("#price_option").change(function() {
if ($("#price_option").val() == "price"){
$(".show_price").show();
/* activate spry */
var sprytextfield2 = new Spry.Widget.ValidationTextField("spry_price", "none", {isRequired:true});
var spryselect7 = new Spry.Widget.ValidationSelect("spry_price_tax", {isRequired:true});
}
else{
$(".show_price").hide();
var sprytextfield2 = new Spry.Widget.ValidationTextField("spry_price", "none", {isRequired:false});
var spryselect7 = new Spry.Widget.ValidationSelect("spry_price_tax", {isRequired:false});
}
});
$("#price_option").change();
/* If date selected */
$("#date_option").change(function() {
if ($("#date_option").val() == "date"){
$(".show_date").show();
/* activate spry */
var sprytextfield3 = new Spry.Widget.ValidationTextField("spry_start_date", "none", {isRequired:true});
var sprytextfield4 = new Spry.Widget.ValidationTextField("spry_finish_date", "none", {isRequired:true});
}
else{
$(".show_date").hide();
var sprytextfield3 = new Spry.Widget.ValidationTextField("spry_start_date", "none", {isRequired:false});
var sprytextfield4 = new Spry.Widget.ValidationTextField("spry_finish_date", "none", {isRequired:false});
}
});
$("#date_option").change();