2009-07-13 9 views
2

의 동적 이름 변경 : 개체가 감사 jQuery를, 라디오 버튼

어떤 도움

을 예상 :

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

나는 몇 가지가 주변에서 볼 수 있지만, 대부분 오류가 발생했습니다.

+4

마음에서 잘 실행? –

+0

1 개의 입력에 대해 두 가지 다른 작업을 사용할 수 있습니다. –

+0

라디오 버튼의 이름을 바꾸는 방법을 보지 못했습니다. –

답변

7

Ben S가 원래 질문에 대한 의견에 쓴대로 이름을 변경해야하는 이유는 무엇입니까?

, 브라우저가 CGI 스크립트에

myRadio = radioChoice1Value를 보내드립니다의 당신이

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

사용자가 선택하는 'radioChoice1'와 클릭 제출하면

있다고 가정 해 봅시다. 원하는대로 처리 할 수 ​​있습니다.

이름 속성을 변경해야하는 경우에는 코드에서 '이전'방법이 무엇인지 확실하지 않습니다.

당신이 시도 할 수

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

그리고 그것은 작동하는지?

이름 속성을 변경하려고하면 브라우저 간 문제가 발생할 수 있습니다. 숨겨진 입력을 생성하고 사용자가 선택한 라디오 버튼의 이름을 저장할 수 있습니다.

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

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

편집 :

I 값의 종류 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를 할당하고이 코드를 사용하는 것이 좋습니다 : 나는 .previous 의 사용을 이해하지 못하는

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

을() - 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의와 파이어 폭스 3.x를