2009-07-13 9 views
2

の動的な名前の変更:オブジェクトは高く評価され jQueryの、ラジオボタン

すべてのヘルプ

を期待:

$("input:radio:checked").previous("name", "original_name").attr("name","new_name"); 

は、私はいくつかの異なるが、周りにここで見たが、ほとんどのエラーを取得しようとしました。

+4

心の中で細かい動作しますか? –

+0

私は1つの選択された入力に対して2つの異なるアクションを利用できます。 –

+0

ラジオボタンの名前を変更する必要があるかどうかわかりません。 –

答えて

7

ベンSがあなたの元の質問にコメントを書いたので、なぜ名前を変更する必要がありますか?

ユーザーが 'radioChoice1' を選択し、クリックすると送信すると、あなたが

<input type="radio" name="myRadio" id="radioChoice1" value="radioChoice1Value" /> 
<input type="radio" name="myRadio" id="radioChoice2" value="radioChoice2Value" /> 

を持っていると言うことは、ブラウザがCGIスクリプトに

myRadio = radioChoice1Valueを送信します。これをあなたが望むように処理することができます。

名前属性の変更を主張する場合、私はあなたのコードで '以前の'メソッドが何か分かりません。

あなたは

$("input:radio:checked").attr("name","new_name"); 

、試してみて、それが動作するかどうかを確認することはできますか?

名前属性を変更しようとすると、ブラウザに問題が発生する可能性があると思います。 隠し入力を作成し、ユーザーが選択したラジオボタンの名前を格納することができます。

<input type="hidden" id="selectedRadioButton" /> 

$('#selectedRadioButton').val($("input:radio:checked").attr('name')); 

EDIT:

私はCGIに掲載される値の種類を伝えることができますように、あなたのHTMLを投稿してください。例えば

ユーザーが「バイ」になります「transactionType」のあなたのCGIスクリプトの値で、その後、最初のラジオボタンを「バイ」をクリックした場合は、

<input type="radio" name="transactionType" id="buy" value="buy" /> 
<input type="radio" name="transactionType" id="sell" value="sell" /> 

を持っている場合。

+0

$( "input:radio:checked")のみを選択できるようにしてください。attr( "name"、 "new_name"); オブジェクトエラー –

+0

cgiはmyRadio = radioChoice1Valueでbuyまたはsell関数を実行する方法を知りますか?それは何を区別していますか? –

+0

これは単なる例でした。私たちがもっと議論できるようにあなたのHTMLを投稿してください。また、私は別の例で私の答えを更新しました。 – SolutionYogi

2

私は、入力の名前を変更するよりも優れた解決策があることに同意します。

ことを言って、そしてあなたの元の質問に答えるために - 私はあなたがあなたのラジオ入力にIDを割り当て、その後、このコードを使用することを示唆している:

$("#inputId").attr("name","new_name"); 

私は.previousの使用を理解していません() - jQueryのドキュメントで見つけることができません。

2

ここには、ジョブが要求するjQueryスクリプトがあります。私はフォームのすべての入力=テキストフィールドの名前を変更するために使用しています。私はラジオやチェックボックスで何もしていませんが、関連するケースステートメントを追加しました。必要に応じてラジオ/チェックボックス変換を挿入します。

function renameTextInputFields(ele) { 
     var i = 0; 
     $(ele).find(':input').each(function() { 
      switch(this.type) { 
       case 'text': 
        $(this).attr("name","textFieldNumber"+(++i)); 
        break; 
       case 'checkbox': 
       case 'radio': 
      }); 
    } 

DOM要素でこのメソッドを呼び出します。私自身は、フォーム内でdivのクローンを作っています。 divには多くのテキストフィールドがあります。私はそう基本要素を取得します。私はあなたが動的ラジオボタンの名前を変更したい理由を尋ねる場合

var clone = $('.classAssignedToMyDiv').clone(); 

は、これは、両方のIE 8.xおよびFirefox 3.xを

関連する問題