Javascript 输入值为";“未定义”;在IE中
刚刚认识到IE9中的奇怪行为,我不知道 我有这个功能:Javascript 输入值为";“未定义”;在IE中,javascript,jquery,internet-explorer,input,undefined,Javascript,Jquery,Internet Explorer,Input,Undefined,刚刚认识到IE9中的奇怪行为,我不知道 我有这个功能: function searchProfile(fieldName, term, page, count) { jQuery.ajax({type:'POST', data:'fieldName='+fieldName+'&term='+term+'&id=${id}&page='+page+'&count='+count, url:'${createLink(actio
function searchProfile(fieldName, term, page, count) {
jQuery.ajax({type:'POST',
data:'fieldName='+fieldName+'&term='+term+'&id=${id}&page='+page+'&count='+count,
url:'${createLink(action: 'searchProfilByName')}',
global: false,
success:function(data,textStatus){jQuery('#'+fieldName+'_results_div').html(data);},
error:function(XMLHttpRequest,textStatus,errorThrown){}});
};
例如,它被称为:
<div class="button" onclick="searchProfile('netzwerk', netzwerk_searchterm.value, 0, -1)">
但在IE9或更早版本中有一个错误
"SCRIPT: 'netzwerk_searchterm' is undefined"
.val()
无法在所有浏览器中运行
有人知道错误在哪里吗?
提前感谢假设
netzwerk_searchterm
是字段的id,写下以下内容:
<div class="button" onclick="searchProfile('netzwerk', jQuery('#netzwerk_searchterm').val(), 0, -1)">
既然您已经有了jQuery。假设
netzwerk\u searchterm
是字段的id,那么写下以下内容:
<div class="button" onclick="searchProfile('netzwerk', jQuery('#netzwerk_searchterm').val(), 0, -1)">
因为您已经有了jQuery。您是否将
netzwerk\u searchterm
定义为变量
我想说您正在尝试访问某个输入字段的值,因此您应该执行以下操作:
$('input#netzwerk_searchterm').val()
例如:
您是否将
netzwerk\u searchterm
定义为变量
我想说您正在尝试访问某个输入字段的值,因此您应该执行以下操作:
$('input#netzwerk_searchterm').val()
例如:
您应该使用
document.getElementById()
像
您应该使用
document.getElementById()
像
事实上,您可以从方法参数中移动“netzwerk_searchterm.value”部分,并将其直接放入函数中,这就是我的意思:
function searchProfile(fieldName, page, count) {
var term = $('input#netzwerk_searchterm').val(); //NOTE this
if(!term)
term = '*'; //you can even customhouse the search term
jQuery.ajax({type:'POST',
data:'fieldName='+fieldName+'&term='+term+'&id=${id}&page='+page+'&count='+count,
url:'${createLink(action: 'searchProfilByName')}',
global: false,
success:function(data,textStatus){jQuery('#'+fieldName+'_results_div').html(data);},
error:function(XMLHttpRequest,textStatus,errorThrown){}});
};
这更具可读性,适用于所有浏览器。事实是,您可以从方法参数中移动“netzwerk_searchterm.value”部分,并将其直接放入函数中,这就是我的意思:
function searchProfile(fieldName, page, count) {
var term = $('input#netzwerk_searchterm').val(); //NOTE this
if(!term)
term = '*'; //you can even customhouse the search term
jQuery.ajax({type:'POST',
data:'fieldName='+fieldName+'&term='+term+'&id=${id}&page='+page+'&count='+count,
url:'${createLink(action: 'searchProfilByName')}',
global: false,
success:function(data,textStatus){jQuery('#'+fieldName+'_results_div').html(data);},
error:function(XMLHttpRequest,textStatus,errorThrown){}});
};
这更具可读性,适用于所有浏览器。声明了
netzwerk_searchterm
在哪里,它指的是什么?声明了netzwerk_searchterm
在哪里,它指的是什么?这很好,有什么特别的原因比jQuery选择器更喜欢这种方式吗?您现有的代码已经是javascript了,所以我就这么写了。。。无论您是否使用jquery lib,这都会起作用。这很好,有什么特别的原因比jquery选择器更喜欢这种方式吗?您现有的代码已经是javascript了,所以我将其编写为。。。无论你是否使用jquery库,这都会起作用。是的,就是这样,已经尝试过了,但与sytnax有点混淆,因为“netzwerk”是一个变量,我没有正确插入它,但现在工作正常=)感谢大家,非常快的回答是的,已经尝试过了,但与sytnax有点混淆,因为“netzwerk”是一个变量,我没有正确插入它,但现在工作正常=)感谢大家,非常快速的回答如果您是按id选择的,请不要添加任何其他绒毛,因为id已经是唯一的,所以$(“#netzwerk_searchterm”)
不需要将输入添加到其中。@Rene Wolferink您会惊讶于网上有多少网站使用的id不是唯一的。“其他绒毛”不会造成任何伤害,但它确实会阻止人们在看到“异常行为”时在此处发布新问题。如果您是按id选择的,请不要添加任何其他绒毛,因为id已经是唯一的,所以$(“#netzwerk_searchterm”)
不需要将输入添加到其中。@Rene Wolferink您会惊讶于网上有多少网站使用的id不是唯一的。“其他绒毛”不会造成任何伤害,但它确实阻止了人们在看到“异常行为”时在这里发布新问题。