将字段id作为javascript函数的变量传递时出错
我使用for循环创建了多个表单,并将所有表单和字段的唯一字段Id传递给javascript方法,但它不会使用Id读取值 任何其他发送id的方法,以便我可以在javascript中获得用于ajax处理的确切字段值。任何帮助都是值得感激的将字段id作为javascript函数的变量传递时出错,javascript,java,jquery,ajax,Javascript,Java,Jquery,Ajax,我使用for循环创建了多个表单,并将所有表单和字段的唯一字段Id传递给javascript方法,但它不会使用Id读取值 任何其他发送id的方法,以便我可以在javascript中获得用于ajax处理的确切字段值。任何帮助都是值得感激的 函数getName(计数){ 字符串字段=计数; var field1=document.getElementById(field).value; 警报(现场1); } 鉴于field1显示null您需要这样做 function getName(count)
函数getName(计数){
字符串字段=计数;
var field1=document.getElementById(field).value;
警报(现场1);
}
鉴于
field1
显示null
您需要这样做
function getName(count) {
// String field = count;
var field = count;
var field1 = document.getElementById(field).value;
alert(field1);
}
Javascript支持使用var关键字而不是字符串来创建变量。首先,下面的代码
String field=count
不正确您需要用var
替换String
,因为这是JavaScript变量声明的工作方式,但无论如何您可以去掉这一行
您的JS将是:
function getName(count) {
var field1 = document.getElementById(count).value;
alert(field1);
}
优化:
请注意,您可以直接在JSP中传递id
,如下所示:
<input name='Id' label="" id='Id<%=count%>' style="width:100px;" onChange="javascript:getName(this.value)" />
你可以用
onChange="javascript:getName(this)"
和javascript
function getName(ref) {
var id= ref.id;
alert(id);
}
试试
document.getElementById('Id'+字段)。value
第二个代码块是Java还是JS?如果它是JS,那么String
将给你一个语法错误。第二个代码块是javascript。在这种情况下,将String
更改为var
,你的代码就会工作。现在它给你一个错误,不能在浏览器控制台中读取null值。当我将字符串改为var时。虽然这个代码片段可以解决这个问题,但它确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满你的代码,这会降低代码和解释的可读性!通过警报(字段)检查“Uncaught TypeError:无法读取null的属性'value'”您是否获得了字段的正确id?@Sahilalert(field)
无法到达此处,因为错误是在此行之前抛出的。@chsdk我的意思是在此行之前`var field1=document.getElementById(field).value`this.value将给出文本框的值,然后您将尝试使用该值作为id来查找元素。它完全是wrong@Sahil这就是OP最初试图做的。不,这不是错误的代码,它只是包含无用的代码行,但是它是正确的,只是有一个附加步骤。@sahil你可以在编辑修订版中检查它,你会看到它是corerct,不要这么粗鲁,公平竞争。请看这里你最近的代码:
,你的JS将是:函数getName(count){//这里您做错了,您实际获取了与Id字符串相关的字段的值,然后在DOM var field1=document.getElementById(count).value;alert(field1);}
function getName(ref) {
var id= ref.id;
alert(id);
}