我需要以下功能:
“选中复选框时,相应的文本框必须突出显示,用户可以在其中输入一些文本……”
复选框可以正常工作,但是当一个复选框被选中时,相应的文本框没有激活,如何解决?
这是我的 PHP 代码:
<?php
if ($handle = opendir('/year_no/albums')) {
$blacklist = array('.', '..');
while (false !== ($file = readdir($handle))) {
if (!in_array($file, $blacklist)) {
echo "<form name='form1'>
<div class='controlset-pad'>
<font color='black'><label><input type='checkbox' name='album[]' value='$album' onclick='enable_text(this.checked)' class='medium'/><span>$album</span></label><br/></div>";
echo"<script>
function enable_text(status)
{
status=!status;
document.form1.other_name.disabled = status;
}
</script>";
echo "<div class='field4'><label>Add your comment here</label><input type='text' name='other_name' class='medium' disabled='disabled'/></div></form>";
}
}
closedir($handle);
}
?>
修改后的代码:
<script>
function enable_text(status, sub)
{
status=!status;
document.getElementById(sub).disabled = status;
}
</script>
<form name='form1'>
<?php
if ($handle = opendir('/year_no/albums')) {
$blacklist = array('.', '..');
while (false !== ($file = readdir($handle))) {
if (!in_array($file, $blacklist)) {
echo "<div class='controlset-pad'>
<font color='black'><label><input type='checkbox' name='file[]' value='$file' onclick='enable_text(this.checked, $file)' class='medium'/><span>$file</span></label>
</div>";
echo "<div class='field4'><label>Add your comment here</label><input type='text' name='sub' id='$file' class='medium' disabled='disabled'/></div>";
}
}
closedir($handle);
}
?>
</form>
最佳答案
试试这个:
正如您所说,下面的代码具有在选中复选框时启用文本框,并在取消选中时再次禁用文本框的功能。
这是一个有效的 Example:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"> </script>
<!-- include JQuery using above line -->
<!-- Here is your small javascript -->
<script type="text/javascript">
$(document).ready(function(e) {
$("input[type=checkbox]").on("click",function(){
if($(this).is(':checked')){
//If checkbox is checked do whatever you want to do here.
$("#txt_"+$(this).attr("id")).removeAttr("disabled");
$("#drpdwn_"+$(this).attr("id")).removeAttr("disabled");
} else {
// If unchecked.
$("#txt_"+$(this).attr("id")).attr("disabled","disabled");
$("#drpdwn_"+$(this).attr("id")).attr("disabled","disabled");
}
});
});
</script>
<?php
$dir = "/year_no/albums";
if(is_dir($dir)) {
if ($dh = opendir($dir)) {
$blacklist = array('.', '..');
$count=1;
while (($file = readdir($dh)) !== false) {
if (!in_array($file, $blacklist)){
echo "<div class='controlset-pad'>
<font color='black'>
<label>
<input type='checkbox' name='file[]' id='".$count."' value='enabletxtbox' class='medium'/>
<span>".$file."</span>
</label>
</div>";
echo "<div class='field4'>
<label>Add your comment here</label>
<input type='text' name='sub' id='txt_".$count."' class='medium' disabled='disabled'/>";
if(filetype($dir.$file) == "dir"){
$dir2 = $dir.$file;
$dh2=opendir($dir2);
$drpdwn="<select id='drpdwn_".$count."' disabled='disabled'>";
while(($file2 = readdir($dh2)) !== false){
if(!in_array($file2, $blacklist)){
$drpdwn.='<option>'.$file2.'</option>';
}
}
$drpdwn.="</select>";
closedir($dh2);
echo $drpdwn;
}
echo"</div>";
}
$count++;
}
closedir($dh);
}
}
?>
关于php - 在 php while 循环中传递 javascript 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14028545/