次のようなものを探しています:
$("input:radio:checked").previous("name", "original_name").attr("name","new_name");
ここで見られるいくつかの異なるものを試しましたが、ほとんどの場合、エラーが発生します: Object Expected
どんな助けでも大歓迎です。
次のようなものを探しています:
$("input:radio:checked").previous("name", "original_name").attr("name","new_name");
ここで見られるいくつかの異なるものを試しましたが、ほとんどの場合、エラーが発生します: Object Expected
どんな助けでも大歓迎です。
ベンSがあなたの元の質問へのコメントで書いたように、なぜあなたは名前を変える必要があるのですか?
あなたが持っているとしましょう
<input type="radio" name="myRadio" id="radioChoice1" value="radioChoice1Value" />
<input type="radio" name="myRadio" id="radioChoice2" value="radioChoice2Value" />
ユーザーが「radioChoice1」を選択して送信をクリックすると、ブラウザは送信します
myRadio=radioChoice1ValueをCGIスクリプトに追加します。必要に応じてこれを処理できます。
name属性の変更を主張する場合、コードの「前の」メソッドが何であるかわかりません。
やってみてもらえますか
$("input:radio:checked").attr("name","new_name");
そしてそれが機能するかどうかを確認しますか?
name属性を変更しようとすると、クロスブラウザの問題が発生する可能性があると想像できます。非表示の入力を作成し、ユーザーが選択したラジオボタンの名前を保存できます。
<input type="hidden" id="selectedRadioButton" />
$('#selectedRadioButton').val($("input:radio:checked").attr('name'));
編集:
CGIに投稿される値の種類をお知らせできるように、HTMLを投稿してください。
たとえば、
<input type="radio" name="transactionType" id="buy" value="buy" />
<input type="radio" name="transactionType" id="sell" value="sell" />
ユーザーが最初のラジオボタン「購入」をクリックすると、CGIスクリプトの「transactionType」の値は「購入」になります。
要求されたジョブを実行する jQuery スクリプトを次に示します。フォームのすべての input=text フィールドの名前を変更するために使用しています。ラジオやチェックボックスについては何もしていませんが、関連するケース ステートメントを追加しました。必要に応じてラジオ/チェックボックス変換を挿入します。
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 の両方で問題なく動作します。
入力の名前を変更するよりも良い解決策があるという他の人たちに同意します。
そうは言っても、元の質問に答えるために、ラジオ入力にIDを割り当ててから、次のコードを使用することをお勧めします。
$("#inputId").attr("name","new_name");
.previous()の使用法がわかりません-jQueryのドキュメントで見つかりません。