如何使用JavaScript在Firefox中选择所需的无线电输入?

时间:2012-06-12 05:15:07

标签: javascript forms html5 firefox validation

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

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

以下是演示:http://jsfiddle.net/rrud/fUcUn/

有没有人对我在JavaScript中尝试的任何其他方法有所了解,告诉Firefox一旦需要这些无线电可选,这些无线电可选吗?

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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

  

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/