-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();">

尝试格式化它,以便更容易阅读。

4

1 回答 1

2

您的 HTML 无效。

一个tr元素不能有form子元素,aform也不能有子元素td

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

在尝试使用 JS 访问 DOM 之前,请从有效文档开始。

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

您遇到的另一个问题是尝试修改表格行的 innerHTML。这将在许多版本的 Internet Explorer 中中断。永远不要用innerHTML修改表格的一部分。

于 2010-04-27T09:14:27.947 回答