gpt4 book ai didi

javascript - 当记录超过一个时,无法禁用文本字段

转载 作者:行者123 更新时间:2023-12-03 08:19:57 24 4
gpt4 key购买 nike

在此代码中,打开页面时,文本字段将被禁用。用户可以使用复选框启用或禁用文本字段。不幸的是,当结果超过一条时,禁用不起作用,但当只有一条记录时,禁用和启用起作用。问题出在哪里?

<script language="JavaScript">
<!--

function enable_text(status)
{
status=!status;
document.f1.explain.disabled = status;
}
//-->
</script>


<?php
$id=$fgmembersite->UserID();
$db_host = 'localhost';
$db_name= 'site';
$db_table= 'action';
$db_user = 'root';
$db_pass = '';


$con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده");
$selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده");
mysql_query("SET CHARACTER SET utf8");

$dbresult=mysql_query("SELECT tablesite.name,
tablesite.family,
tablesite.username,
tablesite.phone_number,
tablesite.email,
action.service_provider_comment,
action.price,
action.date,
job_list.job_name,
action.ind
FROM $db_table
INNER JOIN job_list
on job_list.job_id=action.job_id
INNER JOIN tablesite
on tablesite.id_user=action.service_provider_id AND action.customer_id='$id'
WHERE vote=''",$con);
$i = 1;

while($amch=mysql_fetch_assoc($dbresult))

{


echo "<form name=f1 id='form_$i' method='post' action='{$_SERVER['PHP_SELF']}' accept-charset='UTF-8'>\r\n";
echo'<div dir="rtl">';
echo "نام خدمت دهنده: "."&nbsp&nbsp&nbsp".$amch["name"]." ".$amch["family"]."&nbsp&nbsp&nbsp"."شماره تماس: ".$amch["phone_number"]."&nbsp&nbsp&nbsp"."ایمیل: ".$amch["email"].'<br>'.

"شغل انجام شده: ".$amch["job_name"].'<br>'
."تاریخ انجام عملیات: ".$amch["date"].'<br>'
."هزینه ی کار: ".$amch["price"]." تومان".'<br>'
.$amch["service_provider_comment"].'<hr/>';
/*echo'<label for=\'body\'>توضیحات: </label> <br />';*/
echo'<label for="explain" style="color:#CC0000">این فیلد را فقط در صورتی پر کنید که شکایت دارید</label> <br />';
echo'<input type="checkbox" name=others onclick="enable_text(this.checked)" >شکایت دارم <br>';
echo'<textarea name="explain" id="explain" cols="" rows="" style="width:300 ;height:300">
</textarea>'.'<br/>';

echo'<label for="vote">امتیاز این عملیات را ثبت نمایید: </label> <br />';
echo '<select name="vote">';
echo '<option value="عالی">عالی</option>';
echo '<option value="خوب">خوب</option>';
echo '<option value="متوسط">متوسط</option>';
echo '<option value="بد">بد</option>';
echo '</select>';
echo '<input type="hidden" name="ind" value="' . $amch["ind"] . '">'; //new line
echo '<br/>';
echo '<input type="submit" name="submit" value="ارسال نظر شما"/>';echo'<hr/>';
echo'<hr/>';
echo'</div>';
echo "</form>\r\n";
$i++;
}
?>

最佳答案

当您有多个复选框时,您想知道要启用或禁用哪个复选框。一个可能的解决方案是在 while 循环中向文本区域添加一个 id,并使用变量 $i 使其唯一,例如“explain_1”。然后你也可以将这个$i传递给javascript函数,例如'enable_text(1)'',这样这个函数就可以通过id获取textarea。

也许这会解决您的问题:

更改:

echo'<input type="checkbox" name=others onclick="enable_text(this.checked)" >شکایت دارم <br>';
echo'<textarea name="explain" id="explain" cols="" rows="" style="width:300 ;height:300">
</textarea>'.'<br/>';

至:

echo'<input type="checkbox" name=others onclick="enable_text(' . $i . ')" >شکایت دارم <br>';
echo'<textarea name="explain" id="explain_' . $i . '" cols="" rows="" style="width:300 ;height:300" disabled>
</textarea>'.'<br/>';

然后更改

<script language="JavaScript">
<!--

function enable_text(status)
{
status=!status;
document.f1.explain.disabled = status;
}
//-->
</script>

至:

<script language="JavaScript">
<!--

function enable_text(number) {
var elm = document.getElementById('explain_' + number);
elm.disabled = !elm.disabled;
}
//-->
</script>

关于javascript - 当记录超过一个时,无法禁用文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33784145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com