通过Javascript禁用文本字段

通过Javascript禁用文本字段,javascript,html,Javascript,Html,我有一个输入HTML页面,其中包含文本字段和一个用于禁用该输入字段的复选框 这是用于禁用.js文件中的文本字段的JavaScript代码。value将字段名传递给复选框 function disable_input_field(value){ if ($("#undefined_" + value).is(":checked")) { document.getElementById("undefined_" + value).

我有一个输入HTML页面,其中包含文本字段和一个用于禁用该输入字段的复选框

这是用于禁用
.js
文件中的文本字段的JavaScript代码。
value
将字段名传递给复选框

   function disable_input_field(value){     
        if ($("#undefined_" + value).is(":checked")) {       
            document.getElementById("undefined_" + value).disabled = true;       
            document.getElementById(value).value = '??';     
        }else{      
            $("#" + value ).prop("disabled", false);        
            document.getElementById(value).value = '';     
        } 
    }
在输入HTML页面中,这是HTML代码和js代码

<tr>
                <td >data</td>
                    <td colspan="3">
                       <input type="text" id="data_value" name="data_vale" size="50"value='<?php echo $data?>'>
                </td>
                <td colspan = "3">
                <?php 
                    if($check_data != ''){?>
                        <input type="checkbox" checked name="undefined_data" id="undefined_data" onclick="disable_input_field('data')" >disable
                <?php }else{?>
                        <input type="checkbox" name="undefined_data" id="undefined_data" onclick="disable_input_field('data')" >disable
                <?php }?>
                <input type="hidden" name="data" id="data">
                </td>
            </tr>
            <tr>
在控制器中

if ($this->input->post('data') == 'disabled') {
    $data['check_data'] = 'data';
}

但禁用文本字段不起作用。请在这方面帮助我。

看起来您正在禁用复选框而不是文本框。将代码更改为:

function disable_input_field(value){     
    if ($("#undefined_" + value).is(":checked")) {       
        document.getElementById("undefined_" + value).disabled = true;       
        document.getElementById(value).value = '??';     
    }else{      
        $("#" + value ).prop("disabled", false);        
        document.getElementById(value).value = '';     
    } 
致:


看起来您正在禁用复选框而不是文本框。将代码更改为:

function disable_input_field(value){     
    if ($("#undefined_" + value).is(":checked")) {       
        document.getElementById("undefined_" + value).disabled = true;       
        document.getElementById(value).value = '??';     
    }else{      
        $("#" + value ).prop("disabled", false);        
        document.getElementById(value).value = '';     
    } 
致:

例如,可以为元素设置禁用属性

document.getElementById('data_value').setAttribute('disabled ', 'disabled');
例如,可以为元素设置禁用属性

document.getElementById('data_value').setAttribute('disabled ', 'disabled');
您已经在下面的行中使用了ID“check_data”,我在指定的HTML中没有看到“check_data”元素。这可能是根本原因,其他代码似乎没有问题

if(document.getElementById('check_data').value == 'data'){
您已经在下面的行中使用了ID“check_data”,我在指定的HTML中没有看到“check_data”元素。这可能是根本原因,其他代码似乎没有问题

if(document.getElementById('check_data').value == 'data'){

您正在jquery中引用
检查\u数据

$(document).ready(function() {
    if(document.getElementById('check_data').value == 'data'){
       disable_input_field('data');
    }
}
但是你还没有制作元素

我还使用它来禁用控件,所以我想这可能会有所帮助:)

$(文档).ready(函数(){
$(文档).on('change','check1',函数(e){
如果($(this).is(':checked')){
$('#input1').addClass('disabled-control');
}
其他的
{
$('#input1').removeClass('disabled-control');
}
});
});
。禁用控件{
不透明度:0.4;
光标:不允许;
指针事件:无;
}


禁用jquery中引用的
检查数据

$(document).ready(function() {
    if(document.getElementById('check_data').value == 'data'){
       disable_input_field('data');
    }
}
但是你还没有制作元素

我还使用它来禁用控件,所以我想这可能会有所帮助:)

$(文档).ready(函数(){
$(文档).on('change','check1',函数(e){
如果($(this).is(':checked')){
$('#input1').addClass('disabled-control');
}
其他的
{
$('#input1').removeClass('disabled-control');
}
});
});
。禁用控件{
不透明度:0.4;
光标:不允许;
指针事件:无;
}


禁用ID不能重复
id=“data”
已使用两次,一次在文本中,一次在隐藏字段中。的可能副本无法重现此问题。。对于文本框,您需要使用readonly=true;对于复选框,您需要使用disble=true。这是一个错误。我纠正了它。但不工作@Sasikumarids不能重复
id=“data”
已使用两次,一次在文本中,一次在隐藏字段中。的可能副本无法重现此问题。。对于文本框,您需要使用readonly=true;对于复选框,您需要使用disble=true。这是一个错误。我纠正了它。但在Sasikumar不起作用