2010-03-08 1 views
0

일부 Ajax 호출을 처리하기 위해 JavaScript Prototype (Ruby on Rails 사용)을 사용하고 있습니다. 한 가지 특별한 경우에는 양식에서 필드가 누락되었습니다.프로토 타입 : Form.serialize 일부 입력이 누락되었습니다 (테이블로 인해)

내가 이런 레이아웃 : 1과 2는 라디오 버튼입니다

+---------+---------+ 
| Thing 1 | Thing 2 | 
+---------+---------+-----------+ 
| o Opt 1 | o Opt 1 | <Confirm> | 
| o Opt 2 | o Opt 2 |   | 
+---------+---------+-----------+ 

수신 거부를 확인하기는 버튼입니다. 의

<form action="javascript:void(0)"> 
    <input type="hidden" name="context" value="foo" /> 
    <input type="hidden" name="subcontext" value="bar" /> 
    <table> 
    <tr><td>Thing 1</td><td>Thing2</td></tr> 
    <tr><td> 
     <input type="radio" name="choice" value="1.1" />Opt 1<br /> 
     <input type="radio" name="choice" value="1.2" />Opt 2<br /> 
    </td><td> 
     <input type="radio" name="choice" value="2.1" />Opt 1<br /> 
     <input type="radio" name="choice" value="2.2" />Opt 2<br /> 
    </td><td> 
     <input name="choice_btn" type="button" value="Confirm" 
      onclick="new AJAX.Updater('my_form', '/process_form', 
         {asynchronous:true, evalScripts:true, 
         parameters:Form.serialize(this.form)}); 
         return false;" /> 
    </td></tr> 
    </table> 
</form> 

하지만 확인 버튼을 클릭하여 생성 된 POST 숨겨진 필드에 대한 foobar 값이 포함되어 있음을 알 수 있지만 선택 : 전체 테이블은 같은 코드로, 형태에 싸여 라디오 버튼.

내 양식에 표가있어서 이럴 수 있습니까? 이 문제를 어떻게 해결할 수 있습니까?

답변

0

위의 붙여 넣은 코드에서 분명하지 않은 문제가 발견되었습니다. AJAX 요청이 빌드되기 전에 onclick 핸들러는 라디오 버튼과 버튼 자체를 비롯한 많은 양식 객체를 비활성화합니다. 이러한 단계를 AJAX onLading 매개 변수로 옮기면 모두가 전송됩니다.