我正在尝试激活/停用验证,具体取决于在选择框中选择的内容。
如果在国家和地区选择了地址,则可以选择添加地址。显示区域字段,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();
答案 0 :(得分:1)
而不是这样做:
var spryselect4 = new Spry.Widget.ValidationSelect("spry_country", {isRequired:false});
放:
spryselect4.reset(); // remove the error message
spryselect4.destroy(); // remove the validation
答案 1 :(得分:1)
我使用以下方法对其进行了排序:
spryselect4 = new Spry.Widget.Utils.destroyWidgets("spry_country");