【发布时间】:2010-04-27 09:05:39
【问题描述】:
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 = '<td colspan=\'3\'>Validating...</td>';
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();">
尝试对其进行格式化,使其更易于阅读。
【问题讨论】:
-
请显示生成的 HTML。
-
你能显示生成的 HTML(浏览器实际看到的),而不是PHP代码吗?另外,最好的调试方法是在客户端上使用调试器(如 Chrome 的 DevTools、Firefox 上的 Firebug、Visual Studio 或 IE 上的脚本调试器)进行调试。
-
innerHTML不适用于 jQuery 包装器,它是 DOM 节点的属性。使用.html()。出于理智的考虑,将 JS 从内联事件处理程序属性中踢出到分配click(function() { ... })侦听器的<script>块中! -
@bobince 和其他innerHTML 位将稍作更改,还有其他事情要做。但是,如果我使用 并设置它的内部 HTML,它工作得很好……我遇到的真正问题是想把它留空,但仍然占用一行文本的空间。不过,使用
似乎效果很好。
标签: javascript forms elements