2017-06-30 68 views
0

我有這個腳本有一個keydown事件。它在桌面上工作,但是當我在safari中測試我的iphone時,它不起作用。有沒有辦法在safari中針對移動設備的輸入字段觸發keydown?在手機上觸發keydown(safari iphone)

 $('label:contains("Rock the Mall Concert")').closest('div').addClass('rockMall'); 
    $('div.rockMall label:contains("Student")').parent().next().find('input:eq(0)').keyup(function(){ 
     if ($(this).val() > 1){ 
     $(this).parent().find(".regQuant").css('display', 'block').text('Limited to 1 per person'); 
     $(this).val('1'); 
     var e = jQuery.Event("keydown"); 
     e.which = 13; 
     e.keyCode = 13 
     $(this).trigger(e); 
     } 
    }); 

任何幫助將不勝感激。

+0

嘗試用touchstart事件。 –

+0

會是這樣的:$(this).trigger('touchstart',e); – Jenny

+0

我不認爲觸摸API適用於您想要做的事情。 你是否在意闡述你的問題?我看到你正在手動觸發事件。在某些情況下,出於安全原因,你不能只用JS觸發事件。 以下是TouchEvent文檔的鏈接。 https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent –

回答

0

我用jQuery做了這個片段。 您正在添加一個'keydown'事件,但它在所有瀏覽器和平臺中都不可行,所以我使用'change'事件並且它應該足夠好。

如果輸入更改其值,該事件將觸發。

$('input').on('change', function() { 
 
\t // + operator is to parse the value to an integer. 
 
    var ticket_quantity = +$(this).val(); 
 
\t 
 
    if (ticket_quantity < 1 || ticket_quantity > 20) 
 
    { 
 
    \t $(this).val(1); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
    <input type="number" name="ticket_quantity" placeholder="Tickets much?"> 
 
</form>