收音机选中并下拉选中以确定要转到的URL链接

时间:2016-11-03 20:06:08

标签: jquery

我需要从下拉列表中选择一个选项,然后选择一种语言。一旦我填写了两个必填字段,我就应该根据我选择的语言“打开”所需的链接。

例如:如果我选择英语,它将转到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>

2 个答案:

答案 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>