こんにちは私はこのフォームをうまく機能させようとしていました。したがって、テキストエリアが空でラジオボタンのいずれかが選択されていない場合、テキストエリアにテキストが含まれているがラジオが選択されていない場合は、両方のメッセージを送信してください。 2番目のメッセージ(ラジオボタンが選択されているがtextareaが空の場合)は3番目のメッセージを表示し、最後に両方のtextareaにテキストがあり、ラジオボタンが選択されている場合は成功メッセージを表示します。
これは私のhtmlです:
<div id="main" role="main">
<form action="?q=dt-index" method="post" name="subscribeForm" id="myform">
<div id="comment_holder" class="input_holder" style="position: relative;">
<textarea rows="6" cols="30" placeholder="Please enter text" name="comment" class="inp"></textarea>
</div>
<div class="cbox">
<input type="radio" name="smile_selected" value="Awesome" id="yummy1" />
<label for="yummy1" class="yummy">Awesome</label>
<input type="radio" name="smile_selected" value="Good" id="cool1" />
<label for="cool1" class="cool">Good</label>
<input type="radio" name="smile_selected" value="Okay" id="ok1" />
<label for="ok1" class="ok_smile">Okay</label>
<input type="radio" name="smile_selected" value="Yuck" id="yuck1" />
<label for="yuck1" class="yuck">Yuck</label>
</div>
<div id="loading_button">
<button type="submit" class="default">Send</button>
</div>
</form>
<div id="errors"></div> <!-- Error container -->
</div>
これは私のjQueryです:
$(document).ready(function() {
/* on submitting my form */
$( '#myform' ).submit(function() {
/* if Textarea is empty and redio button are not checked display message error for both */
if($('#myform textarea').val()=="")
{
if (!$(":radio:checked").attr('checked')) {
$('#errors').empty().text('Please enter your message and select a radio');
return false;
}
}
/* else if Textarea is empty display message error */
else if($('#myform textarea').val()=="") {
$('#errors').empty().text('Please enter your message');
return false;
}
/* if radio button is not being selected display message error */
if (!$(":radio:checked").attr('checked')) {
$('#errors').empty().text('Please select a radio');
return false;
}
/* Everthing is good display success message and add SENDING class to submit button */
else {
$('#myform :submit').addClass('sending').html('Sending message...');
$('#errors').empty().text('All Good :D');
}
});
});