2013-08-19 105 views
3

我有一個以下格式的結構,我將它顯示在Bootstrap模式中。按下Enter/Return鍵不會觸發Safari中的按鈕單擊

<div> 
<input type="text"/> 
<input type="text"/> 
<button class="jSomeButton" onclick="javascript: return false;"></button> 
<!--Click event handled in Javascript code--> 
</div> 

$(function(){ 
    $(".jSomeButton").on('click',function(){ 
     //Called from Firefox, Chrome and IE 
     //Not called from Safari 
    }); 
}); 

在填充輸入後按下Enter/Return鍵時,在Firefox,Chrome和IE中觸發按鈕點擊。
但在Safari [v4.0.3]中,它不會觸發按鈕單擊!而是似乎回傳到同一頁面。

這是Safari中的一個已知問題嗎?
如果是,任何解決方法?
如果不是,有人可以幫我解決根本問題嗎?

P.S. :
1.我熟悉用於觸發按鈕的Javascript代碼,點擊Enter鍵事件。只是好奇,爲什麼上述不會在Safari中工作只有
2.爲了澄清,在我仍然處於輸入控件上時按下Enter鍵,而不是按Tab鍵先按下按鈕,然後按Enter鍵。

+0

你能與我們分享您的全部代碼,以便我們可以幫助? –

+0

@DevangRathod:你的意思是整個加價?還有什麼事情你需要知道? – Vandesh

+0

意味着你想要的結果是什麼? –

回答

3

將輸入字段和按鈕添加到表單。

嘗試使用此,但我不知道這是正確的方式來做到這一點。在這種情況下,您最好將兩個js監聽器函數添加到輸入字段。作爲

`

<div> 
    <input id="one" type="text"/> 
    <input id="two" type="text"/> 
    <button class="jSomeButton" onclick="javascript: return false;">    </button> 
    <!--Click event handled in Javascript code--> 
    </div> 



$('#one').keypress(function(e){ 
if(e.which == 13) { 
//call your code 

} 
}); 

$('#two').keypress(function(e){ 
if(e.which == 13) { 
///call your code 
} 
}); 

更好您寫三篇聽衆一個其他兩個用於兩個輸入文件按鈕。希望這個不好的人幫助你。我不確定這個解決方案。請嘗試後告訴我。

+0

仍然無法在Safari v4.0.3。 – Vandesh

+0

我已經更新了答案,請嘗試一下。 – sarsarahman

+0

看起來不是一個非常乾淨的解決方案。 – Vandesh

0

來代替class屬性使用ID屬性onclick事件,

<div> 
<input type="text"/> 
<input type="text"/> 
<button class="jSomeButton" id="jSomeButton" onclick="javascript: return false;"></button> 
<!--Click event handled in Javascript code--> 
</div> 


$(function(){ 
    $("#jSomeButton").on('click',function(){ 
     //Called from Firefox, Chrome and IE 
     //Not called from Safari 
    }); 
}); 

,如果你不希望添加ID可以delegate事件到document這樣的事件將在DOM已定義的類工作。

<script type="text/javascript"> 
$(function(){ 
    $(document).on('click', ".jSomeButton" ,function(){ 
     alert('works'); 
    }); 
}); 
</script> 
+0

那麼這將與Safari一起使用?請參考嗎? – Vandesh

+0

@Vandesh是的,我檢查了它的工作條件。請參閱編輯,這將使點更清晰。 –

+0

@Vandesh你檢查了嗎? –

0

@Vandesh,

,張貼在評論,我建議你把一個表單標籤在你的整個表格。 看看這個JSFiddle更多的想法。

http://jsfiddle.net/JUryD/

我想這在Safari,Chrome瀏覽器,IE6 +,Opera和Firefox 22+

讓我知道,如果你面對任何其他麻煩。

下面是代碼:

<div> 
<form>    
    <input type="text"/> 
    <input type="text"/> 
    <button class="jSomeButton" onclick="javascript: return false;">Send</button> 
</form> 
</div> 
+0

在Safari v4.0.3中檢查了小提琴。不起作用。你試過的版本是什麼? – Vandesh

+0

我正在使用v5.0.1 –