Валидация на форма

d0oMch0

Registered
Значи имам 1 форма и и правя валидация с js преди да са събмитне, немога да измисля най-удачния начин, как ако ми е избран чекбокса за получаване на новини да накарам потребителя задължително да избере 1 от 2-та радио бутона (daily или weekly) а ако не е чекнат да си валидира само останалото и да си събмитне ако всичко е ок.
Ето ми го кода:
HTML:
 <form action="something.php" name="contacts" method="post" onsubmit="return validateForm()">
                    Name:
                    <input type="text" name="name" id="name" value="" size="30"/>
                    Email:
                    <input type="text" name="email" id="mail" size="30"/>
                    Phone:
                    <input type="text" name="phone" id="phone" size="30" />
                    Message:
                    <textarea NAME="comments" COLS=25 ROWS=6></textarea>
                    <input type="checkbox" name="recieve_news" value="recievenews" id="news_checkbox" />Recieve News
                        <input type="radio" name="news" id="daily_news"/>Daily
                        <input type="radio" name="news" id="weekly_news" />Weekly
                </form>

[js]
function validateForm()
{
var name = $("#name");
var email = $("#mail");
var phone = $("#phone");
var mVal=$("#mail").val();
var at_pos=mVal.indexOf("@");
var dot_pos=mVal.lastIndexOf(".");
if (name.val() == "Please input some name..." || name.val() == "")
{
alert("Please insert name!");
name.css("border","2px solid red");
email.css("border","2px solid red");
phone.css("border","2px solid red");
return false;
}
else if (email.val() == "" && at_pos<1 || dot_pos<at_pos+2 || dot_pos+2>=mVal.length)
{
alert("Please insert a valid email!");
email.css("border","2px solid red");
return false;
}
else if (phone.val() == "" || phone.val().length < 8)
{
alert("Please insert Phone with at least 8 chars !");
phone.css("border","2px solid red");
return false;
}
else
{
return true;
}
[/js]
:|
 
Първо на тия двете им задай value за да можеш да ги обработиш еднозначно в PHP
<input type="radio" name="news" id="daily_news" value="daily"/>Daily
<input type="radio" name="news" id="weekly_news" value="weekly"/>Weekly

после в JS правиш още една-две проверки:
[js]
if (document.getElementById('news_checkbox').checked) {
if (!document.getElementById('daily_news').checked && !document.getElementById('weekly_news').checked) {
alert('Please choose daily or weekly?');
return false;
}
}
[/js]
 

Back
Горе