2015-11-03 3 views
0

Я не могу использовать JQuery для этого проекта.javascript условный onclick форма

Я пытаюсь собрать 3 переменных из 3 переключателей. Представление этой формы вызовет функцию, которая проверит три переменные с помощью простого условного. Это либо запустит первую строку, либо (еще) запустит вторую строку кода. У меня проблема с условным (он появляется). Я всегда получаю первую линию для стрельбы, а не вторую линию.

function valid() { 
 
    var q1 = document.getElementById("ques1").value; 
 
    var q2 = document.getElementById("ques2").value; 
 
    var q3 = document.getElementById("ques3").value; 
 
    if (q1 ==="5" && q2 ==="5" && q3 ==="5") { 
 
    alert("Thank you for your interest in acme employment. We are not able to consider you for employment at this time. "); 
 
    } else { 
 
    window.location.assign("http://acmeemployment.com"); 
 
    //window.location.assign("http://www.w3schools.com"); 
 
    } 
 
}
<form action="" method=""> 
 

 
    <p>Are you 18 years of age or older?*<br/> 
 
    <input type="radio" name="q1" id="ques1" value="5">Yes 
 
    <br/> 
 
    <input type="radio" name="q1" value="7">No 
 
    </p> 
 

 
    <p>Are you willing to take a drug screen according to our policy?*<br/> 
 
    <input type="radio" name="q2" id="ques2" value="5">Yes 
 
    <br/> 
 
    <input type="radio" name="q2" value="7">No 
 
    </p> 
 

 
    <p>Will you release your background information inclusive of ciminal records?*<br/> 
 
    <input type="radio" name="q3" id="ques3" value="5">Yes 
 
    <br/> 
 
    <input type="radio" name="q3" value="7">No 
 
    </p> 
 

 
    <input type="button" value="Submit" onclick="valid()" /> 
 

 
</form>

+1

Вы должны проверить, если они на самом деле проверили, см: http://stackoverflow.com/questions/9618504/get-radio-button-value-with-javascript – Tom

+0

Вы хотите проверить 'var q1_yes = document.getElementById (« ques1 »). checked', который отличается от возврата' value'; «значение» всегда будет одинаковым. Кроме того, у вас есть хотя бы одна опечатка на слово «преступник». – Marc

+0

Спасибо за ссылку Том. Я не смог найти это при моем первоначальном поиске. Очень полезно! Кроме того, Марк, очень полезен. Я позаимствовал чей-то код и упустил «ценность» против «проверенного» - спасибо! – Graham

ответ

1

Ваш код не проверяет для выбранных переключателей. Вы можете использовать document.querySelector(), чтобы найти выбранные переключатели.

Кроме того, кажется, что ваша логика назад и вы хотите проверить на !== "5".

function valid() { 
 
    var q1 = document.querySelector("[name='q1']:checked").value; 
 
    var q2 = document.querySelector("[name='q2']:checked").value; 
 
    var q3 = document.querySelector("[name='q3']:checked").value; 
 
    if (q1 ==="5" && q2 ==="5" && q3 ==="5") { 
 
    console.log("Thank you for your interest in acme employment. We are not able to consider you for employment at this time. "); 
 
    } else { 
 
    console.log("redirect to http://acmeemployment.com"); 
 
    } 
 
}
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script> 
 
<form action="" method=""> 
 

 
    <p>Are you 18 years of age or older?*<br/> 
 
    <input type="radio" name="q1" id="ques1" value="5">Yes 
 
    <br/> 
 
    <input type="radio" name="q1" value="7">No 
 
    </p> 
 

 
    <p>Are you willing to take a drug screen according to our policy?*<br/> 
 
    <input type="radio" name="q2" id="ques2" value="5">Yes 
 
    <br/> 
 
    <input type="radio" name="q2" value="7">No 
 
    </p> 
 

 
    <p>Will you release your background information inclusive of ciminal records?*<br/> 
 
    <input type="radio" name="q3" id="ques3" value="5">Yes 
 
    <br/> 
 
    <input type="radio" name="q3" value="7">No 
 
    </p> 
 

 
    <input type="button" value="Submit" onclick="valid()" /> 
 

 
</form>

+0

Это хороший ответ, но объяснение лучше ... возможно, OP не знает, что радиокнопки имеют значение, даже если не отмечены. –

+0

Спасибо, Дейв. Я ценю усилия и понимание. Это работало очень хорошо. Marcos, я могу проверить сценарий из http://gh-canon.github.io/stack-snippet-console/console.js и узнать об этом (хотя он довольно большой для этой конкретной задачи). – Graham

+0

@Graham Я рад, что смог помочь. Не путайте console.js include. Это используется только для отображения результатов в фрагменте - это не имеет никакого отношения к фактическому решению. – dave

Смежные вопросы