2010-04-27 4 views
-1
var loc_name = document.forms['create_<?php echo(htmlspecialchars($window_ID)); ?>'].elements['location_name']; 
alert(loc_name); 
이 단지 저 메시지 '미정의'로서

자바 스크립트에 액세스 폼 요소 []. 요소 []

제공

...

var loc_name = document.forms['create_<?php echo(htmlspecialchars($window_ID)); ?>']; 
alert(loc_name); 

날 오브젝트 형태를 부여 사업.

방금 ​​잘못 됐습니까? 이 양식 요소에 액세스하는 '적절한'방법은 무엇입니까? 양식 요소에 올바른 name이 있고 id이 있으며 id는 비슷하지만 같지 않습니다.

HTML

<input type="button" name="create_location" value="Create" onclick=" 
var pre_row_was = $('#pre_form_row_1').innerHTML; 
$('#pre_form_row_1').innerHTML = '&lt;td colspan=\'3\'&gt;Validating...&lt;/td&gt;'; 
var loc_name = document.forms['create_1'].elements['location_name']; 
alert(loc_name); 
if(loc_name.value == '') { 
    alert('You can\'t leave the room name blank'); 
    loc_name.focus(); loc_name.value = 'Enter a name'; 
    $('#pre_form_row_1').innerHTML = pre_row_was; return false; 
} 
if(loc_name.value == 'Enter a name') { 
    alert('You must enter a room name first'); loc_name.focus(); 
    $('#pre_form_row_1').innerHTML = pre_row_was; 
    return false; 
} 
$('#pre_form_row_1').innerHTML = pre_row_was; 
Window_manager.new_window().load_xml('location/create.php?location_name=' + loc_name.value).display();"> 

는 쉽게 읽을 수 있도록 서식을 시도했다.

+1

생성 된 HTML을 표시하십시오. –

+0

PHP 코드가 아닌 * 생성 된 HTML (브라우저가 실제로 보는 내용)을 표시 할 수 있습니까? 이와 별도로 디버깅을위한 가장 좋은 방법은 Chrome의 DevTools, Firefox의 Firebug 또는 Visual Studio 또는 IE의 스크립트 디버거와 같은 디버거를 사용하여 클라이언트에서 디버깅하는 것입니다. –

+0

'innerHTML'은 jQuery 래퍼에서 작동하지 않습니다. DOM 노드의 속성입니다. '.html()'을 사용하십시오. 그리고 정성을 사랑하기 위해 JS가 인라인 이벤트 핸들러 속성에서'click (function() {...}) '리스너를 할당하는'