如何在name属性为数组类型时检查无线电输入状态?

时间:2018-02-27 15:21:05

标签: jquery

HTML:

let documentIds = [
  'San Francisco',
  'New York',
  'Las Vegas'
]

jquer:

let data = {
  country: 'US',
  language: 'English'
}

此代码工作正常,而无线电类型输入名称属性为:fp_tax_ctegory。我处于使用fp_tax_ctegory作为名称的情况。现在我收到以下错误:<div class="raio-group require"> <input class="fp_radio" type="radio" name="fp_tax_category[]" value="9">ইসলাম ও জীবন <br> <input class="fp_radio" type="radio" name="fp_tax_category[]" value="7">কবিতা <br> <input class="fp_radio" type="radio" name="fp_tax_category[]" value="1">গল্প <br> <input class="fp_radio" type="radio" name="fp_tax_category[]" value="11">ট্রিপস &amp; ট্রিকস <br> <input class="fp_radio" type="radio" name="fp_tax_category[]" value="8">প্রযুক্তি <br> <input class="fp_radio" type="radio" name="fp_tax_category[]" value="10">সাম্প্রতিক বিষয় <br> </div> 此错误本身就是全部。我弄错了。但是如何解决这个问题,保留fp_tax_category []而不是fp_tax_category?

3 个答案:

答案 0 :(得分:1)

由于THIS包含class="raio-group require">元素,您可以重写radio_is_unchecked函数:

function radio_is_unchecked(){
    return THIS.find('input:checked').length >= 0;
}

如果你想保持这个功能,你必须用[] \字符来修复css选择器。

答案 1 :(得分:1)

如果您使用的是新版本的JQuery(版本&gt; = 3.0),则可以使用$.escapeSelector( "fp_tax_category[]" );

以下是要更改的代码:

function radio_is_unchecked(){

    var name = THIS.find("input").attr("name");
    // Here is the change 
    if($("input:radio[name="+$.escapeSelector( name )+"]:checked").length == 0)
        return true;

    return false;
}

答案 2 :(得分:0)

您可以为单选按钮的不同组(ex group1)命名不同的类。

<div class="raio-group require">
    <input class="fp_radio group1" type="radio" name="fp_tax_category[]" value="9">

然后你可以修改这个函数

function radio_is_unchecked(){
    return THIS.find('.group1:checked').length >= 0;
}