2013-01-22 54 views
0

在IE9只承認奇怪的行爲,我不知道輸入值爲 「undefined」 在IE

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){}}); 
}; 

和it's打了個比方:

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

FF鉻歌劇Safari瀏覽器出色 「read

netzwerk_searchterm.value 

但在IE9以上的老年人那裏有一個錯誤

"SCRIPT: 'netzwerk_searchterm' is undefined" 

.val() didn't工作的所有瀏覽器 任何人有一個忍者知道那裏的錯誤可能是什麼? 由於事先

+0

'netzwerk_searchterm'聲明在哪裏,它指的是什麼? – Nope

回答

1

假設netzwerk_searchterm是該領域的id,這樣寫:

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

當你擁有jQuery的了。

+0

是的,它已經嘗試過,但與sytnax有點混淆,因爲「netzwerk」是一個變量,我沒有正確插入它,但現在工作正常=)感謝大家,非常快速的答案 –

1

您是否將netzwerk_searchterm定義爲變量?

我說你正在試圖訪問某個輸入字段的值,所以你應該做的:

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

如:

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

如果你選擇通過id,不要添加任何其他的絨毛,因爲id已經是唯一的了,所以'$('#netzwerk_searchterm')'不需要添加'input'。 –

+0

@RenéWolferink你會驚訝有多少網站在網上使用的ID不是唯一的,但。而「其他絨毛」並沒有造成任何傷害,但當它們看到由此造成的「異常行爲」時,它確實阻止了人們在這裏發佈新問題。 – Jules

1

您應該使用document.getElementById()

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

工作很好,是否有什麼特別的理由比jQuery選擇器更喜歡這種方式? –

+0

你現有的代碼已經在JavaScript中,所以我把它放在了這麼...這也將工作,但你使用jQuery的lib或不 – Rab

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){}}); 
}; 

這是更具可讀性和在每個瀏覽器的工作原理。