0

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

chrome FF 歌剧 safari 非常出色“ read

netzwerk_searchterm.value

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

"SCRIPT: 'netzwerk_searchterm' is undefined" 

.val()不是所有的浏览器都工作有人知道错误可能出在哪里吗?提前致谢

4

4 回答 4

2

你应该使用document.getElementById()

searchProfile('netzwerk', document.getElementById('netzwerk_searchterm').value, 0, -1)
于 2013-01-22T09:21:25.267 回答
1

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

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

因为你已经有了 jQuery。

于 2013-01-22T09:19:21.043 回答
1

您是否定义netzwerk_searchterm为变量?

我会说您正在尝试访问某些输入字段的值,因此您应该这样做:

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

例如:

<div class="button" onclick="searchProfile('netzwerk', $('input#netzwerk_searchterm').val(), 0, -1)">
于 2013-01-22T09:20:41.303 回答
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){}});
};

这更具可读性并且适用于每个浏览器。

于 2013-01-22T09:36:13.143 回答