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

标签 javascript php

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

<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/

相关文章:

javascript - 在 Shopify 中将 CSS 添加到 iframe

c# - 将 PHP 中的代码转换为 C#

php - 如何在magento核心资源中设置utf8字符集?

php - 如何将带有日期和时间 AM/PM 的字符串转换为 24 小时 mysql 时间戳格式

php - 这个 PHP/MySQL 删除函数安全吗?

javascript - 页面停止滚动时触发函数

JavaScript 警报 onclick onchange if 语句

PHP 多维数组排序 array_reverse 不起作用?

javascript - 使用 Javascript Jquery 在鼠标悬停在主项目上显示子项目

javascript - 如何使用 jQuery 替换部分嵌入 flashvars 属性