我需要从下拉列表中选择一个选项,然后选择一种语言。一旦我填写了两个必填字段,我就应该根据我选择的语言“打开”所需的链接。
例如:如果我选择英语,它将转到URL 1,如果我选择法语,它将转到URL 2.
如何在链接到任何地方之前检查所需的区域是否已填满?
<form method="post" action="">
<select id="option" required>
<option value="">Select</option>
<option value="option1"> Option 1</option>
<option value="option2"> Option 2</option>
</select>
<p>Choose a language:</p>
<label for="en">English</label>
<input type="radio" name="lang" id="lang-en" value="en" required><br>
<label for="fr">French</label>
<input type="radio" name="lang" id="lang-fr" value="fr">
<input type="submit" id="submit-button" onclick="checkRequired()" value="Open"></input>
<script>
function checkRequired()
{
if(document.getElementById('lang-en').checked)
{
window.location="www.url1.com";
}
else if(document.getElementById('lang-fr').checked)
{
window.location="www.url2.com";
}
}
</script>
</form>
答案 0 :(得分:0)
获取元素的值,并仅在有值时才执行操作。
您可以像这样构建一个it / else语句:
{{1}}
虽然没有选择任何内容{{1}}将返回任何在这种情况下(布尔检查)返回false的内容。所以什么都不会发生。
答案 1 :(得分:0)
在功能开始时包括以下条件:
if($('input[name=lang]:checked').length // checks if either one of the checkboxes are selected
&&
$("#option").val() != "") // checks if the value from the select dropdown has been selected
{
}
此外,您无需显式检查所选值以重定向到某个网址。您可以使用jquery .data
属性直接从所选选项重定向。
<select id="option" required>
<option value="">Select</option>
<option value="option1"> Option 1</option>
<option value="option2"> Option 2</option>
</select>
<p>Choose a language:</p>
<label for="en">English</label>
<input type="radio" name="lang" id="lang-en" value="en" required data-url="www.url1.com"><br>
<label for="fr">French</label>
<input type="radio" name="lang" id="lang-fr" value="fr" data-url="www.url2.com">
<input type="submit" id="submit-button" value="Open"/>
<script>
$("#submit-button").click(function()
{
if($('input[name=lang]:checked').length > 0 && $("#option").val() != "")
window.location = $('input[name=lang]:checked').eq(0).data('url');
});
</script>