2015-01-23 8 views
-1

Я делаю приложение html5, которое требует, чтобы все поля были заполнены до нажатия кнопки отправки.
Теперь я хочу предупредить, если текстовое поле не заполнено, проблема в том, что моя кнопка отправки отключена до тех пор, пока все поля не будут заполнены, поэтому я не могу добавить предупреждение к этой кнопке.
Любая идея о том, как это решить?
Я хочу, чтобы после заполнения окончательного текстового поля кнопка отправки стала доступной без предварительного нажатия на нее.
Обратите внимание, что «обязательный» не работает.Проверка сообщений перед отправкой

У меня есть следующий код:

HTML:

<form id="winForm"> 
<p> 
<input type="text" id="name" name="name" required /> 
</p> 
<p> 
<input type="text" id="vorname" name="vorname" required /> 
</p> 
<p> 
<input type="text" id="email1" name="email1" required /> 
<label id="atteken" >@</label> 
<input type="text" id="email2" name="email2 " required /> 
<textarea id="fullemail" name="fullemail"></textarea> 
</p> 
<p> 
<input type="text" id="telefon" name="telefon" onclick="generateFullAdress()" required /> 
</p> 
<p> 
<input type="text" id="firma" name="firma" required /> 
</p> 
<p> 
     <input type="submit" id="submitBtn" onclick="sendTheMail()" value=" "> 
</button><div id="loading"><img src="images/loadingBar.gif" id="load"></img></div> 

</p> 
</form> 

Jquery/JS

<script type="text/javascript"> 
function generateFullAdress() { 

document.getElementById('fullemail').value = 
document.getElementById('email1').value + '@' + 
document.getElementById('email2').value; 

} 

</script> 

<script> 

var $input = $('input:text'), 
    $register = $('#submitBtn');  
$register.attr('disabled', true); 

$input.keyup(function() { 
    var trigger = false; 
    $input.each(function() { 
     if (!$(this).val()) { 
      trigger = true; 
     } 
    }); 

if(trigger) { 
    $register.attr('disabled',true);  
}else { 

    $register.removeAttr('disabled'); 

} 
}); 
</script> 

Помощь значительно будет оценена.

Спасибо!

+0

В первой функции вы используете javascript. Когда вы свяжетесь в jquery, я тоже буду использовать эту функцию. Я не знаю следующего синтаксиса: $ ('input: text'), но я знаю следующее: $ ('input [type = "text"]'). Насколько я знаю, переменная «триггер» существует внутри функции, но не вне ее. – AMartinNo1

+1

просто используйте проверку HTML5. вы знаете, входные атрибуты типа _required_, _pattern_, type = email и т. д. ... он делает все, что вы просили, без строки sinjge javascript. – dandavis

ответ

1

Если у вас есть форма, как, например:

<form id="form"> 
... 
</form> 

Вы можете использовать следующий JQuery код, чтобы сделать что-то до того, как форма отправлена:

$(function() { 
    $('#form').submit(function() { 
     // DO STUFF 
     return true; // return false to cancel form action 
    }); 
}); 

ИЛИ

выполнение то же самое с событием onsubmit, как

<form action="youraction" onsubmit="validatefunction" method="post"> 
Смежные вопросы