2014-11-17 2 views
0

Хотите использовать проверку javascript для работы, когда я нажму кнопку «Отправить». Что происходит сейчас, даже если я введу небольшое значение, которое представляет значение. но мне нужно, чтобы проверить проверки, прежде чем я нажмите на кнопку отправить ...Проверка javascript на кнопку отправки

Это Javascript:

$(function() { 
    $("#newMonoReading").on('focusout', function() { 
     var str = ""; 

     var initialMonoReading = $('#InitialMonoReading').val(); 
     var newMonoReading = $('#newMonoReading').val() 
     if (~~newMonoReading < ~~initialMonoReading) { 
      $('#MonoErrorMessage').text("New Mono Readings must be MORE than existing"); 
      $('#MonoErrorMessage').show(); 
     } else { 
      $('#MonoErrorMessage').hide(); 
     } 
    }); 
}); 

Теперь на моей форме, вы можете увидеть тип входа (Submit)

<div class="modal-footer"> 
<input type="submit" value="Submit New Readings" class="btn btn-primary"> 

<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 
</div> 
</fieldset> 
</form> 

Как получить функцию JavaScript для кнопки отправки, поэтому, когда я вхожу в submit, она не работает, потому что я ввел небольшое значение.

+0

кнопку использовать вместо отправить – Edrich

+0

@Edrich: Если вы хотите отправить «форму», используйте кнопку отправки. – Amberlamps

+0

@Amberlamps вы можете отправить кнопку с помощью jquery. – Edrich

ответ

1
function validateForm() { 
    var str = ""; 

    var initialMonoReading = $('#InitialMonoReading').val(); 
    var newMonoReading = $('#newMonoReading').val(); 
    if (~~newMonoReading < ~~initialMonoReading) { 
     $('#MonoErrorMessage').text("New Mono Readings must be MORE than existing"); 
     $('#MonoErrorMessage').show(); 
     return false; 
    } else { 
     $('#MonoErrorMessage').hide(); 
    } 
} 

Этот пример ясно вещи FIDDLE

<form onsubmit="return validateForm()" method="post"> 
    <div class="modal-footer"> 
    <input type="submit" value="Submit New Readings" class="btn btn-primary"> 

    <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 
    </div> 
    </fieldset> 
    </form> 
+0

Копия и вставка не помогут кому-то понять. Цель, связанная с тем, чтобы кто-то помог вам решить проблему, - это понять проблему в руке и научиться ее исправлять, а не просто скопируйте/вставьте.Есть много свободного источника для этого. – NewToJS

+0

, что я хочу, когда я нажимаю кнопку, показания должны быть выше, чем существующее чтение. На данный момент, если его нижний он все равно отправляет форму, но я не хочу что произойдет, я хочу, чтобы ошибка javascript отображалась, если значения ниже, когда я нажимаю кнопку отправки –

+0

@NewToJS, я думаю, что это было довольно просто понять. Осталось обновить мой ответ, чтобы сделать его более понятным .. –

0

Вы действительно не хотите, чтобы валидация на кнопке submit, так как есть другие способы отправки формы. Вы действительно хотите, чтобы валидация обработчика onsubmit формы.

Теперь, при этом вы не указали достаточно своего кода, чтобы узнать, где проблема, но я могу подумать.

До этой линии:

$("#newMonoReading").on('focusout', function() { 

Добавьте эту строку:

alert($("#newMonoReading").length); 

Там есть хороший шанс, что вы пытаетесь запустить этот код до того, как DOM была оказана. Если это возвращает 0, у вас есть три варианта:

  • делегация Используйте событие (избыточно в данном случае)
  • Перенести код внутри блок $(function() {...});
  • нагрузки скриптов в нижней части страницы.
+0

что я хочу, когда я нажимаю кнопку, показания должны быть выше существующих. на данный момент, если он ниже, он все еще отправляет форму, но я не хочу, чтобы это произошло, я хочу, чтобы ошибка javascript отображалась, если значения ниже, когда я нажимаю кнопку отправки. –

+0

У меня было небольшое ооо, я имел в виду 'onsubmit' ' - не 'submit'. Исправлена. Это будет по-прежнему срабатывать, если пользователь использует кнопку «отправить» или нажимает ENTER для отправки формы. –

+0

это еще хуже, когда я нажимаю кнопку, появляется предупреждение (1).тогда, когда я нажимаю кнопку «Отправить», он не работает и дает ошибку в коде. я просто не хочу, чтобы пользователь продолжал до тех пор, пока сообщение не пошло. –

0

Изменить кнопку представить кнопку Таким образом, вы будете иметь полный контроль над представить. Вы можете выполнить собственную логику в функции validate() и решить, следует ли разрешить форма представить или не

<input type="button" onclick="validate()" value="Submit New Readings" class="btn btn-primary"> 

и ваша функция Validate будет

function validate() { 
    var initialMonoReading = $('#InitialMonoReading').val(); 
    var newMonoReading = $('#newMonoReading').val() 
    if (~~newMonoReading < ~~initialMonoReading) 
    { 
    alert("Value is not valid"); 
    return; 
    } 
    ///else submit 
    $("yourform").submit(); 
}); 
Смежные вопросы