2011-09-21 5 views
0

제 양식에 완벽한 스크립트를 찾았습니다. 선택 영역의 값을 텍스트 상자에 추가합니다.텍스트 상자가 유효하지 않음 선택 값이 작동하지 않음

<script type='text/javascript'> 
//<![CDATA[ 
(window).load(function(){ 
$("select[name='type[]']").change(function() { 
$("input[name='tvalue[]']").eq($(this).index()).val(this.value); 
}).change(); 
}); 
/]]> 
</script> 

여기에 문질러 야. 이,하지 않는

<select name="type[]"> 
    <option value="1">One</option> 
    <option value="2" selected="selected">Two</option> 
</select> 

<select name="type[]"> 
    <option value="1" selected="selected">One</option> 
    <option value="2">Two</option> 
</select> 

<input type="text" name="tvalue[]" id="tvalue[]" /> 
<input type="text" name="tvalue[]" id="tvalue[]" /> 

을하지만이 작동하는 이유 누군가는 설명 할 수 있습니까? (물론 필요한 배치입니다.) :

<select name="type[]"> 
    <option value="1">One</option> 
    <option value="2" selected="selected">Two</option> 
</select> 

<input type="text" name="tvalue[]" id="tvalue[]" /> 

<select name="type[]"> 
    <option value="1" selected="selected">One</option> 
    <option value="2">Two</option> 
</select> 

<input type="text" name="tvalue[]" id="tvalue[]" /> 

첫 번째 선택은 작동하지만 두 번째 것은 작동하지 않습니다.

세 번째 선택 및 텍스트를 추가하면 두 번째 선택이 세 번째 텍스트를 변경하고 세 번째 선택은 아무 작업도 수행하지 않습니다.

의견이 있으십니까? .each()를 사용

답변

0

시도 :

$(window).load(function(){ 
    $("select[name='type[]']").each(function() { 
     $(this).change(function() { 
      $("input[name='tvalue[]']").eq($(this).index()).val(this.value); 
     }).change(); 
    }); 
}); 
0

나는 문제가 사용자의 입력의 id의 함께있을 것 같아요. 그들은 정말로 독특해야하며, 괄호는 아니요 아니요. 왜 일부 레이아웃에서는 가끔씩 작동하는지 잘 모르겠습니다. 첫 번째 레이아웃에서는 인덱싱이 재설정되지만 첫 번째 레이아웃에서는 두 번째 일치를 찾을 수 있지만 두 번째는 찾을 수 없다고 생각할 수 있습니다.

이 문제를 해결하는 방법은 무엇입니까? 아마 관련된 select와 input 요소의 이름을 짝을 지어서 모든 select가 클래스를 공유하게 할 것입니다. 최상위 레벨 선택기에서 해당 클래스를 사용하고 "this"라는 name 속성을 사용하여 원하는 입력 요소를 찾습니다.

관련 문제