2016-02-24 3 views
1

У меня есть форма, как это:, как включить JavaScript в HREF

<form action="" method="get"> 

    <select> 
     <option value="0">-</option> 
     <option value="1">P1</option> 
     <option value="2">P2</option> 
     <option value="3">P3</option> 
    </select> 

    <a href="page6.html" onclick="return false;">New Page</a> 

</form> 

и я хочу, чтобы включить HREF только если значение параметра не «-». Вы можете мне помочь, пожалуйста?

Спасибо,

+1

Что вы имеете в виду под "включить"? Думаю, вам захочется начать с изучения некоторых учебных пособий по JavaScript. В частности, вы хотите иметь обработчик событий onchange для этого 'select', и вы хотите каким-то образом изменить это' a', чтобы «включить» его. – David

+0

Oana лучше исследовать себя о jquery, которую вы можете использовать, и сделать это за минуту. –

+0

Вы хотите решение с jQuery? – dorado

ответ

0

Вот код:

checkSelect = function() 
 
{ 
 
    var mySelect = document.getElementById("mySelect"); 
 
    return mySelect.options[mySelect.selectedIndex].text !== "-"; 
 
}
<form action="" method="get"> 
 
    <select id="mySelect"> 
 
     <option value="0">-</option> 
 
     <option value="1">P1</option> 
 
     <option value="2">P2</option> 
 
     <option value="3">P3</option> 
 
    </select> 
 
    <a href="page6.html" onclick="return checkSelect();">New Page</a> 
 
</form>

+0

Спасибо! Это то, что я хочу :) – Johanna

0

Что вы хотите, чтобы добавить событие OnChange для избранных, а затем, когда функция изменения называется вы можете сделать чек, чтобы видеть, хотите ли Вы изменить свою страницу с этим значением, См ниже код, например

<form action="" method="get"> 
    <select onchange="getValue(this);"> 
     <option value="0">-</option> 
     <option value="1">P1</option> 
     <option value="2">P2</option> 
     <option value="3">P3</option> 
    </select> 

</form> 

<script> 
    function onChange(sel){ 
     if(sel.value != "-"){ 
      document.location.href = newUrl; 
     } 

    } 

</script> 
+0

Также необходимо удалить атрибут «onclick» или изменить его значение. –

+0

. Да, извините, я, должно быть, пропустил эту часть. Ну, у него есть несколько решений, которые, надеюсь, могут помочь ему в другой ситуации. –

0

Он должен выглядеть так с событием OnChange, +1 к Дэвиду

<form action="" method="get"> 
          <select id="sel" onchange="myFunction()"> 
            <option value="0">-</option> 
            <option value="1">P1</option> 
            <option value="2">P2</option> 
            <option value="3">P3</option> 
          </select> 
       <a id="link">New Page</a> 

то туРипсЫоп должен выглядеть следующим образом

if(document.getElementById("sel").value != "-"){ 
document.getElementById("link").href = "your link here"; 
} 
else{ 
document.getElementById("link").href = "#"; 

}

+0

В этом случае ссылка недоступна. .. потому что вы удалили href ... – Johanna

+0

Вместо того, чтобы менять onclick для возврата true или false, я подумал, что лучше удалить href, я не понимаю, почему вам нужна ссылка, которую вы не можете использовать. –

0

Здесь работает код

$(function() { 
    $("select").change(function() { 
    if ($("select option:selected").val() != "0") { 
     $("a").attr("onclick", "javascript:return true;") 
    } else { 
     $("a").attr("onclick", "javascript:return false;") 
    } 
    }) 
}) 

Вот JSFiddle code

0

function changeHref() { 
 
     console.log(this.value) 
 
     if (this.value == 0) { 
 
       document.getElementById("anc").href="";    
 
     } else { 
 
      document.getElementById("anc").href="page6.html"; 
 
     } 
 
    } 
 
    
 
    var select = document.getElementById('sel'); 
 
    select.addEventListener('change', changeHref, false);
<form action="" method="get"> 
 
     <select id='sel'> 
 
       <option value="0">-</option> 
 
       <option value="1">P1</option> 
 
       <option value="2">P2</option> 
 
       <option value="3">P3</option> 
 
     </select> 
 
     <a id='anc' href="" onclick="return false;">New Page</a> 
 
    </form>

+0

Это не работает: | Новая страница не отображается ... хотя я выбираю вариант 0,1,2 или 3 ... Спасибо за ваш ответ – Johanna

+0

@ Оана - Извините, но он действительно работает. – dorado

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