2012-04-10 15 views
0

私はこのコードを編集しています! と私はそれを正しく行うことができませんでした。チェックボックスでテキストボックスの配列を有効または無効にする

対応するチェックボックスをオンにすると、テキストボックスが有効になります。 。 しかしとき何も起こらない:(

私のコードでは、テキストおよびチェックボックスを動的にPHPを使用してデータベースから生成されている関数を適用 ここでは私のコードです:

<div><div class="ac-container"> 

<div id="accordion"> 

<?php 

$qry="SELECT * FROM catalog"; 
$result= mysql_query($qry); 
if($result){ 
while($info = mysql_fetch_array($result)) 
{ 

print "<h3><a href=\"\#\"> cat:".$info['name']."</a></h3><div>"; 

$qryitem="SELECT * FROM item WHERE Id=". $info['Cid']; 
$resultitem=mysql_query($qryitem); 
if($resultitem){ 

?> 

<form name="form1" id="form" method="post" action="manage_item_action.php" > 
<?php 
while($info=mysql_fetch_array($resultitem)) 
{ 
?> 
<input type="checkbox" id="checkB" name="op[]" value="<?php echo $info['Id'];?>" /> <?php echo $info['name'];?> 
<label> Quantity <input disabled="disabled" id="textB" type="text" 
name="Quantit[]" value="<?php echo $info['Quantity'];?>"/> 
</label> 
<script> 



checkBoxes=document.form1.elements['op[]']; 
textBoxes=document.form1.elements['Quantit[]']; 
for(var i=0 ; i<checkBoxes.length;i++){ 
checkBoxes[i].onchange = function() { 
textBoxes[i].disabled =!(this.checked);}; 


} 

</script> 



<br/> 

     <?php 
     } 
    } 


else echo "There are no items."; 

print "</div>"; 



} 
} 


?> 

</div> 

<input type="submit" value="update" name="submit"/> 
<input type=reset value="clear"></td></tr> </form> 
+0

これは、あなたがそこにあるいくつかのコードにぎこちないものです。あなたのループでは、クローズドタグを含むすべてのJavaScriptが重複してしまうことになります。 –

+0

申し訳ありませんが、私はあなたが "クローズドタグを持つすべてのJavaScriptを複製したもの"という意味を持っていませんでした。 – proG

+0

レンダリングしたhtmlを投稿することはできますか? –

答えて

0

あなたが持っている問題があることですイベントハンドラ内の変数iが定義されていないこの問題を克服するために、あなたは彼らが参照しているか、インデックス保存するために、各チェックボックスにプロパティを追加できます。

checkBoxes=document.form1.elements['op[]']; 
textBoxes=document.form1.elements['Quantit[]']; 
for(var i=0 ; i<checkBoxes.length;i++) 
{ 
    checkBoxes[i].myIndex = i; 
    checkBoxes[i].onchange = function() { 
     textBoxes[this.myIndex].disabled =!(this.checked); 
    }; 
} 

他の方法にこの問題を解決してください:http://www.howtocreate.co.uk/referencedvariables.html

あなたのコードはまだかなり混乱しています。例えば、あなたの最初のprint-statementで終了タグがあまりに多く生成されています。質問はhtmlとjavascriptにのみ関連するので、私はあなたの質問からPHPコードを削除することをお勧めします。

jQueryのようなDOM要素を操作するためのライブラリを使用することもお勧めします。

JavaScriptを作成してデバッグするときは、必ずエラーメッセージが表示されるようにしてください。 「何も起こらない」とは、エラーを無視しているだけの兆候です。 Firefoxの場合は、アドオンFirebugをダウンロードしてください。 Safariには、設定でアクティブにできる開発者ツールもあります。これらのツールを使用すると、このような問題を見つけて解決するのが非常に簡単になります。

+0

ありがとうございました!それは私と一緒に働いた! DOM要素のjQueryについてのご意見ありがとうございます – proG

関連する問題