2016-08-07 27 views
-1

をチェックされている入力を無効にする、私はこれを試してみました:私の英語のため申し訳ありませんは、私はチェックボックスがチェックされたときに、CMPを無効にする必要がありますチェックボックスが

<script language="text/javascript"> 
 

 
var x = document.getElementById("SemPretencao").checked; 
 

 
function desativar() { 
 

 
\t if (x==true) { 
 
\t \t alert("Seu Babacaum"); 
 
\t \t document.getElementById("salario").disabled=true; 
 
\t } else { 
 
\t \t alert("Babaquara"); 
 
\t \t document.getElementById("salario").disabled=false; 
 
\t } 
 

 
} 
 

 
document.getElementById("SemPretencao").addEventListener("click", desativar();, false); 
 

 
</script> 
 

 
inputs: 
 

 
    <a class="field_names">Pretenção Salarial: </a> <input type="number" class="number_inputs" name="salario" id="salario"> <br> 
 
\t <a class="field_names">Não Tenho Pretenção Salarial </a> <input type="checkbox" class="checkbox_input" name="SemPretencao" id="SemPretencao">

、私はブラジル人です。

+0

あなたが持っているでしょうチェックボックスに関数がチェックされているかどうかチェックします。そうでない場合、値は決して変更されません。 – adeneo

+0

そして、スクリプトはDOMの要素の後に来なければなりません。 DOM準備ハンドラが必要になります。 – adeneo

+0

また、 'desativar();'は構文エラーです。 'desativar 'でなければなりません。 – undefined

答えて

2

あなたaddEventListenerは間違っています。あなたはそれを渡す代わりに関数を呼び出すことになります。あなたの機能は少し簡素化することもできます。ちょうどあなたのdesativarの後に括弧を削除し、関数内x変数を移動、変更するイベントを "クリック" に変更

function desativar() { 
    document.getElementById("salario").disabled = document.getElementById("SemPretencao").checked; 
} 

document.getElementById("SemPretencao").addEventListener("click", desativar, false); 

Working example

+0

' this'は変更された要素を参照するので、 'document.getElementById(" SemPretencao ")。checked'部分は' this.checked; 'で置き換えることができます。 – undefined

0

あなたのコードにいくつかの問題が見つかりました。 xの定義は関数内にあったはずです。 eventListenerがうんざりしていた、それはchangeイベントをリッスンする必要があります。私はこのリスナーをHTML要素の中に入れます(議論の対象ですが、作業しています)。

function desativar() { 
 
var x = document.getElementById("SemPretencao").checked; 
 
\t if (x==true) { 
 
    \t alert("Seu Babacaum"); 
 
\t \t document.getElementById("salario").disabled=true; 
 
\t } else { 
 
\t \t alert("Babaquara"); 
 
\t \t document.getElementById("salario").disabled=false; 
 
\t } 
 

 
}
<a class="field_names">Pretenção Salarial: </a> <input type="number" class="number_inputs" name="salario" id="salario"> <br> 
 
\t <a class="field_names">Não Tenho Pretenção Salarial </a> <input type="checkbox" class="checkbox_input" name="SemPretencao" id="SemPretencao" onchange="desativar()">

0

:これを試してみてください

function desativar() { 
    var x = document.getElementById("SemPretencao").checked; 
    if (x==true) { 
     alert("Seu Babacaum"); 
     document.getElementById("salario").disabled=true; 
    } else { 
     alert("Babaquara"); 
     document.getElementById("salario").disabled=false; 
    } 

} 

document.getElementById("SemPretencao") 
.addEventListener("change", desativar, false); 
関連する問題