2016-06-23 10 views
0

私は非常に単純な問題のようですが、多くの類似した投稿にもかかわらず、私には解決策を指摘していないようです。javascript htmlページのチェックボックスステータスに変数値を割り当てます

私はhtmlページのスクリプトで次のコードを持っている:

"lock369""lock935"は、ページが正しくロードされていることを確認するために私の正気のための定数に設定されている
$.get("data.php", { getlocks: 1}, function(data) { //Pull checkbox status from database (so it isn't lost on a page refresh) 
    wl = data.split(" "); 
    document.getElementById("lock369").checked = 1; 
    document.getElementById("lock399").checked = 0; 
    document.getElementById("lock935").checked = wl[2]; 
    document.getElementById("test1").value = wl[0]; 
    document.getElementById("test2").value = wl[1]; 
    document.getElementById("test3").value = wl[2]; 
}); 

を。問題はたとえwl[2]がゼロであっても、どのように設定しても"lock935"チェックされているように出てきます。 (テキストボックス"test1" - "test3"は、wlの3つの要素を表示しているので、彼らは正しい値をdata.php経由でデータベースから取得していると確信しています)。

元々私はすべての3つのチェックボックスをwlというそれぞれの要素に設定していましたが、すべて同じ問題が発生するので、面白いことはありません。"lock935"。また、wlの値を個々の変数に割り当てようとしましたが、document.getElementById("lockXXX").checkedをそれらの変数と同じに設定しても問題は解決しませんでした。私はまた、wl[X]をparanthesis、quotes、single quotesなどに入れてみましたが、何も違いはありませんでした。

私は、これが私の部分に簡単な過失である場合にだけ親切にそれのために私に叫ぶと、私は将来的には私の方法を修正します:)

おかげので、私はjsのに非常に新しいです述べたように!

+0

なぜ数字に設定しようとしていますか?これはブール値です。それは真実か偽であるべきです。 – Quentin

+0

それはデータベースの仕組みです。ちょうど1/0を使う方がはるかに簡単でした。私はそれを切り替えようとすることができますが、それは少し時間がかかります - それは違いが生じると思いますか? – Eric

+0

ああ、実際にそれを修正した...うわー、大丈夫! – Eric

答えて

0

のようなものを試してみてください番号にキャストします。

例:

document.getElementById("lock935").checked = parseInt(wl[2], 10); 

OR

document.getElementById("lock935").checked = Number(wl[2]); 

のparseIntは、空の文字列の場合にNaNを返し、​​を使用して0を返します。 NaN0の両方がチェックされていないボックスになるので、本当にあなた次第です。

編集:説明の中にいくつかの言い回しとコードの入力ミスが修正されました。

0

ちょうどあなたがそれにのparseIntを呼び出すこと、それは文字列形式でデータベースから来ている場合ていることを確認したり、ブール値として0と1を使用したことには何も問題はありません。この

document.getElementById("lock935").checked = wl[2]=="1"?true:false; 
+0

それは働いた - ちょうどあなたを試して、もちろんそれも動作します、ありがとう! – Eric

+0

より単純なフォームは次のようになります:document.getElementById( "lock935")。checked =(wl [2] == "1") – izambl

関連する問題