Javascript 输入值为";“未定义”;在IE中

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

刚刚认识到IE9中的奇怪行为,我不知道

我有这个功能:

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不是唯一的。“其他绒毛”不会造成任何伤害,但它确实阻止了人们在看到“异常行为”时在这里发布新问题。