输入值在IE中是“未定义的”

时间:2013-01-22 09:16:23

标签: javascript jquery internet-explorer input undefined

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

ich有这个功能:

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)">

chrome FF opera safari出色地“read

netzwerk_searchterm.value

但在IE9或更早版本中出现错误

"SCRIPT: 'netzwerk_searchterm' is undefined" 

.val()无法在所有浏览器中运行 任何人都有一个忍者的想法,错误可能在哪里? 提前谢谢

4 个答案:

答案 0 :(得分:2)

您应该使用document.getElementById()

喜欢

searchProfile('netzwerk', document.getElementById('netzwerk_searchterm').value, 0, -1)

答案 1 :(得分:1)

假设netzwerk_searchterm是该字段的id,请写下:

<div class="button" onclick="searchProfile('netzwerk', jQuery('#netzwerk_searchterm').val(), 0, -1)">

因为你已经有了jQuery。

答案 2 :(得分:1)

您是否将netzwerk_searchterm定义为变量?

我会说你试图访问某些输入字段的值,所以你应该这样做:

$('input#netzwerk_searchterm').val()

E.g:

<div class="button" onclick="searchProfile('netzwerk', $('input#netzwerk_searchterm').val(), 0, -1)">

答案 3 :(得分:1)

事实是,您可以从方法参数中移动“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){}});
};

这更具可读性,适用于所有浏览器。