【问题标题】:How do I make a required radio input optional in Firefox using JavaScript?如何使用 JavaScript 在 Firefox 中将必需的单选输入设为可选?
【发布时间】:2012-06-14 23:49:59
【问题描述】:

我正在尝试在我的表单中使用HTML5 Constraint Validation 来帮助用户在提交之前发现客户端错误(显然也进行服务器端验证)。

我有一种情况,我需要有条件地根据用户在其他字段中选择的内容将某些字段设为必填或可选。但是,在 Firefox 中,我无法在较早的时候使无线电输入在需要之后成为可选。我已经尝试在这些无线电输入上删除 required 属性并将 this.willValidate 设置为 false,但无论我做什么,Firefox 似乎仍然认为它们是必需的。

这是一个演示:http://jsfiddle.net/rrud/fUcUn/

有没有人对我可以在 JavaScript 中尝试告诉 Firefox 在需要这些收音机时将它们设为可选的其他方法有什么想法?

我的示例在 Chrome 和 Opera 中运行良好,而在 Firefox 中,所有 非无线电 输入的行为都符合预期……所以这可能只是 Firefox 中的一个错误?我在 Win7 上使用 Firefox 13.0。

【问题讨论】:

    标签: javascript forms html firefox validation


    【解决方案1】:

    使用jQuery的prop方法:$.fn.prop

    -> $('input').prop('required', true|false);

    http://jsfiddle.net/trixta/fUcUn/12/

    【讨论】:

    • 是的!这完全解决了我的问题!谢谢!
    【解决方案2】:

    只需将其添加到您的代码中

    this.checked = false;

    你的代码应该是这样的

    $(function() {
        $("#require").click(function() {
            $("input, textarea, select").attr('required', 'required');
        });
        $("#unrequire").click(function() {
            $("input, textarea, select").removeAttr('required').each(function() {
                this.willValidate = false;
                this.checked = false;
            });
        });
    });
    

    检查这个小提琴 http://jsfiddle.net/kabichill/ktfV6/

    【讨论】:

    • 感谢您的建议 Kabilan,但您的小提琴中似乎仍需要无线电输入(尝试提交时,“请选择这些选项之一”消息在它们旁边弹出)。需要明确的是:我正在寻找一种方法,使无线电输入在早些时候被要求之后成为可选的。
    猜你喜欢
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多