2017-06-30 36 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>