我正在尝试使用 Javascript 获取 2 个文本框的值。
文本框 1,没有错。
文本框 2,相同的代码,但没有任何反应。
这是代码
var fieldname;
fieldname = document.getElementById("div"+field).getAttribute("field");
alert(fieldname); // RETURNS "Birthdate"
var textval;
textval = document.getElementById("textfield"+field).value;
alert(textval); // RETURNS NOTHING
var field
是文本框和div
的id。
为什么这不起作用?
最佳答案
当发布这样的 html/javascript/css 问题时,隔离代码并将其放在 jsfiddle ( jsfiddle.net ) 中。这不仅可以让其他人更快地为您解决问题,而且通常将代码与您的环境隔离开来可以消除可能导致意外行为的额外因素。通常,将代码片段移动到 jsfiddle.net 的过程可以在其他任何人甚至需要参与之前就显示出问题!
其次,我建议修改您的调试实践,使其比使用警报更容易:
- 运行带有 js 控制台的浏览器。
- 将调试记录到 console.log()
为确保 console.log 的正常降级,请将此代码添加到您的全局 javascript 中:
if (typeof(console) == 'undefined') { console = { log: function() { } };
在控制台中运行 js 以检查静态代码中出现问题的值,例如
- 运行
document.getElementById("textfield"+field).value
来检查你期望的值是否可用,如果你没有找到你想要的,然后沿着线走回去期待,例如如果.value
不可用,运行document.getElementById("textfield"+field)
并展开对象以查看其内容等。
- 运行
- 您还可以在控制台中运行您选择的任意 javascript,通过点击访问页面加载创建的可用 javascript 对象。这也在一定程度上减少了在警报中手动编码的需要。
关于javascript - 无法获取 2 个文本框的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2669901/