Отключить форму «действие», если проверка JQuery не удается - PullRequest
0 голосов
/ 08 июля 2010

Я пытаюсь доработать корзину моей веб-страницы и столкнулся с одной последней проблемой.Рядом с кнопкой «Добавить в корзину» есть текстовое поле, в котором требуется ввести определенный аппаратный ключ (отпечаток пальца) перед совершением покупки.Мне нужно настроить его так, чтобы конечный пользователь не мог нажимать «добавить в корзину», пока это поле не будет проверено.

Я успешно настроил проверку, чтобы сделать текстовое поле обязательным и разрешить только определенную строкусимволов, но я не могу понять, как динамически «отключить» действие формы, пока текстовое поле не будет успешно проверено.

Вот мой jquery:

<script>
$(document).ready(function() {

$.validator.addMethod("os0", function(value) {
    return /^(([a-fA-F0-9]{4,4})+\-([a-fA-F0-9]{4,4}))$/.test(value); 
    }, "Invalid Fingerprint.");     

$("#myFingerprint").validate({  
     rules: {
        os0: "required os0",
    },      
  });
});
</script>

Вотсоответствующий HTML: (код формы скопирован и вставлен нашим провайдером электронной коммерции)

<td>                                                            
 <form id="myFingerprint" action="https://www.blahblahblah.com/ecom/gb.php?c=cart&i=770678&cl=122992&ejc=2" target="ej_ejc" method="POST" accept-charset="UTF-8">

 <input type="hidden" name="on0" value="Fingerprint"/>

Fingerprint:<br/>

<input type="text" id="os0" name="os0" maxlength="9"/>

<input type="image" src="http://www.blahblahblah.com/add_to_cart.gif" border="0" alt="Add to Cart" class="ec_ejc_thkbx" onClick="javascript:return EJEJC_lc(parent);"/>
 </form>
</td>

Ответы [ 2 ]

2 голосов
/ 08 июля 2010

Вы можете задать форму методом onsubmit, а затем отменить отправку формы, если форма не подтверждена.

$('#myFingerprint').submit(function (e) {
    if(!all_of_my_validation_passed) {
        e.preventDefault();
    }
});
0 голосов
/ 08 июля 2010

Матчу, ты спасатель жизни.Это сработало как шарм.

У меня есть одно странное происшествие.После добавления этого сценария, когда введен правильный аппаратный ключ и нажата кнопка «Добавить в корзину», моя корзина покупок теперь открывается на новой вкладке браузера, а не всплывающим в том же окне.Есть идеи здесь?На всякий случай мой новый HTML-код формы выглядит так:

<form id="myFingerprint" action="https://www.e-junkie.com/ecom/gb.php?c=cart&i=770678&cl=122992&ejc=2"  method="POST" onSubmit="return function(e)" target="ej_ejc" accept-charset="UTF-8">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...