无法获得2个文本框的值

Alp*_*jef 1 html javascript textbox

我试图用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
Run Code Online (Sandbox Code Playgroud)

var field是文本框的ID和div.

为什么这不起作用?

Kzq*_*qai 6

当发布这样的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对象.这有点减少了在警报中手动编码的需要.