2013-10-03 2 views
1

Я написал сценарий jquery, который автоматически определяет номер, который пользователь ввел. Если пользователь ввел 2,4,6,8,10 - у них автоматически появится окно подтверждения, в котором указано, что есть предложение.Текстовое поле Onfocus и off-focus

Если они нажмут ДА, они будут перенаправлены. Однако, если они нажмут «Отмена», он снова вернется в текстовое поле и снова появится окно подтверждения.

Есть ли в любом случае я могу сделать это, если пользователь нажимает кнопку ОТМЕНА, фокус отключен от текстового поля, поэтому нет цикла подтверждения.

HTML

<input type="text" class="Quantity" id="Quantity9438851" name="Quantity" value="1" style="width:30px"> 

Jquery

$("#Quantity9438851").bind("change paste keyup", function() { 
    if($(this).val() == 2){ 
    var didConfirm = confirm("There is currently an offer for 2 polo shirt for £25. Click YES to recieve discount."); 
     if (didConfirm == true) { 
     window.location.href = "http://blahblah.com/&Quantity=10"; 
     } 
    }else if($(this).val() == 4){ 
    var didConfirm = confirm("There is currently an offer for 4 polo shirt for £50. Click YES to recieve discount."); 
     if (didConfirm == true) { 
     window.location.href = "http://google.com/Registration/blah"; 
     }   
    }else if($(this).val() == 6){ 
    var didConfirm = confirm("There is currently an offer for 6 polo shirt for £75. Click YES to recieve discount."); 
     if (didConfirm == true) { 
     window.location.href = "http://google.com/Registration/blah"; 
     }     
    }else if($(this).val() == 8){ 
    var didConfirm = confirm("There is currently an offer for 8 polo shirt for £100. Click YES to recieve discount."); 
     if (didConfirm == true) { 
     window.location.href = "http://google.com/Registration/blah"; 
     }     
    }else if($(this).val() == 10){ 
    var didConfirm = confirm("There is currently an offer for 10 polo shirt for £100. Click YES to recieve discount."); 
     if (didConfirm == true) { 
     window.location.href = "http://google.com/Registration/blah"; 
     }     
    } 
}); 

http://jsfiddle.net/NUJrL/3/

+2

улучшение Код предложение: 'если ($ (это) .val()% 2 === 0) {... "Существует в настоящее время предложение для" + $ (это) .val() + "polo ..."} ' – Johan

+0

вы можете сфокусироваться на другом элементе, выполнив if (didConfirm == true) {...} else {... сосредоточиться на другом элементе}. Вы можете сделать код намного меньше, но это еще один ответ. –

+1

Большое спасибо @Johan – jagmitg

ответ

1

Почему бы не просто использовать blur событие?

$("#Quantity9438851").bind("blur", function() { 

    var val = $(this).val(); 

    if(!(val % 2) && val <= 10){ 

     var conf = confirm("There is currently an offer for " 
     + val +" polo shirt for £25. Click YES to recieve discount."); 

     if (conf) 
     window.location.href = "http://google.com/&Quantity=10"; 


    } 
}); 

http://jsfiddle.net/NUJrL/6/

+0

Или сделать еще один шаг, просто привязать 'blur'. Таким образом, если пользователь хочет ввести 22, вы не всплываете в коробке, предлагая им сделку на 2, прежде чем они закончатся! – danielpsc

+0

Идёт просмотр этой функции связывания. Но сейчас. это работает отлично! – jagmitg

+0

@ danielpsc Хорошая точка, обновлено! – Johan

Смежные вопросы