php - 激活/停用选择框选项的 spry 验证

标签 php javascript spry

我正在尝试让 spry 根据选择框中选择的内容来激活/停用验证。

添加地址是可选的,如果选择了地址,则会显示国家和地区字段,并且 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();

最佳答案

而不是这样做:

var spryselect4 = new Spry.Widget.ValidationSelect("spry_country", {isRequired:false});

放置:

spryselect4.reset(); // remove the error message
spryselect4.destroy(); // remove the validation 

关于php - 激活/停用选择框选项的 spry 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13192046/

相关文章:

javascript - 不同屏幕尺寸下bootstrap响应式设计小bug

javascript - 更改表中第一行的背景颜色

php - 奇怪的行为活泼的标签面板

php - undefined variable : del on line 18

php - 哪个 facebook API 的?

php - SQL查询查找有多少天的博客文章

javascript - 使用 JavaScript 使用每个输入 JSON 对象创建一个按钮

javascript - 如何在用户输入时显示提示框或工具提示?

css - 悬停后通过 Spry 菜单栏显示的图像

javascript - jQuery Flot.js x 轴上的错误日期