2017-06-18 10 views
0

ボックスの順序で名前属性に変更入力番号に関する質問があります。最初のボックスで入力名を変更すると、ラジオ入力付きの2番目のボックスでチェック値が失われます。ラジオ入力の名前を変更 - ラジオが消えた

$('.container').find('.box').each(function (idx) { 
      $(this).find('input').each(function() { 
       let field = $(this); 
       let fieldName = field.attr('name'); 
       let mIndex = 0; 

       if (fieldName.length !== 0) { 
        field.attr('name', fieldName.replace(
         /\[\d+]/g, 
         function (match, pos, original) { 
          return mIndex++ === 0 ? '[' + idx + ']' : match; 
         })); 
        field.attr('id', field.attr('name').replace(/[\[\]]/g, '#').replace(/\#+/g, '-').replace(/[-]+$/g, '')); 
        field.closest('.field').children('label').attr('for', field.attr('id')) 
       } 
      }); 

はここでの例で私のコードです:https://jsfiddle.net/pbLkabhe/

私の質問は、無線入力が変更入力名の後に値を確認滞在するJavaScriptコードを修正する方法です。

+0

私はあなたの形式のいずれかの障害が表示されません。 –

+0

2番目のボックスにはラジオ入力オプションが表示されません(http://prntscr.com/fl5794) – Matt

答えて

0

あなたのラジオはすべて同じラジオグループとして扱われています。ラジオグループは同じ名前なので、ラジオグループは別々のグループにはなりません。これは、そのうちの1つだけがチェックされることを意味します。私はラジオボタンの2番目のセットの名前を変更したので、両方のラジオセットに正しいラジオがチェックされています。

<label> 
    <input id="box-0-radio" name="hello[0][radio]" type="radio" value="0" checked="checked">   
    Option 3 
</label> 
<label> 
    <input id="box-0-radio" name="hello[0][radio]" type="radio" value="1"> 
    Option 4 
</label> 

https://jsfiddle.net/pbLkabhe/1/

+0

名前を変更したくありません[{番号}] [{名前}]ボックスに名前を保存します。私はいくつかのフィールドを持つボックスを持っているかもしれません。例えば、名前がボックス[0]、ボックス[1]、ボックス[2]、....などの入力ラジオを持つ6-9ボックス – Matt

+0

ラジオボタンの名前が同じ場合、角かっこに関係なく、一度に1つのみをチェックすることができます。それがラジオボタンの仕組みです。あなたはそれについて何もできません。 – WizardCoder

+0

私はtmp変数の古い値でそれを行うことができます、新しい設定し、新しい名前にtmpを設定? – Matt

関連する問題