首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >激活/停用选择框选项上的spry验证

激活/停用选择框选项上的spry验证
EN

Stack Overflow用户
提问于 2012-11-02 16:52:56
回答 2查看 909关注 0票数 0

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

添加地址是可选的,如果选择了地址,则会显示国家和地区字段,并且需要验证spry_country、spry_region。

价格是可选的,如果添加了价格,则会显示价格和价格税字段,并且spry_price & spry_price_tax将需要验证等等。

我有以下代码,这似乎工作得很好,但是,如果你选择地址,然后改变主意,然后决定不输入一个地址,代码将隐藏字段,但似乎仍然尝试和验证隐藏的字段,因为我无法提交表单。希望这是有意义的:)

代码语言:javascript
复制
/* 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();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-02 17:33:44

我已经使用以下命令对其进行了排序:

代码语言:javascript
复制
spryselect4 = new Spry.Widget.Utils.destroyWidgets("spry_country");
票数 1
EN

Stack Overflow用户

发布于 2012-11-02 17:31:20

而不是这样做:

代码语言:javascript
复制
var spryselect4 = new Spry.Widget.ValidationSelect("spry_country", {isRequired:false});

放入:

代码语言:javascript
复制
spryselect4.reset(); // remove the error message
spryselect4.destroy(); // remove the validation 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13192046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档