JavaScript使用document.forms []。elements []访问表单元素

时间:2010-04-27 09:05:40

标签: javascript forms elements

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 个答案:

答案 0 :(得分:2)

您的HTML无效。

tr元素不能包含form子元素,而form元素不能包含td子元素。

浏览器以不同的方式从此错误中恢复,包括(如果我没记错的话)将表单元素移动到表格之后,同时将其他所有内容保留在原来的位置。

在尝试使用JS访问DOM之前,先从valid文档开始。

混合表格和表格时,您可以整个表格整个表格,或整个表格放在单元格中。

您遇到的另一个问题是尝试修改表格行的innerHTML。这将在许多版本的Internet Explorer中中断。切勿使用innerHTML修改表的