Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript控制文本框_Javascript_Jquery_Asp.net_Textbox - Fatal编程技术网

使用javascript控制文本框

使用javascript控制文本框,javascript,jquery,asp.net,textbox,Javascript,Jquery,Asp.net,Textbox,我正在尝试使用javascript禁用页面上的控件。。我正在做以下工作,但未能成功完成。。我遗漏了什么,请指出 if (some condition) { var textBoxTemp = document.getElementById('_ctl21_m_txtTemp'); textBoxTemp.disabled = true; } 我通过查看页面的源代码获得元素id。在源代码中,id显示 _ctl21:m_

我正在尝试使用javascript禁用页面上的控件。。我正在做以下工作,但未能成功完成。。我遗漏了什么,请指出

       if (some condition) {        
        var textBoxTemp = document.getElementById('_ctl21_m_txtTemp');
        textBoxTemp.disabled = true;
        }
我通过查看页面的源代码获得元素id。在源代码中,id显示

_ctl21:m_txtTemp

我试着两者都用

_ctl21:m_TXTEMP和_ctl21_m_TXTEMP

在上面的第二行代码中,..

可以使用jquery禁用文本框

$("[id$=txtTemp]").prop("disabled", true); 
注意:prop()仅在jquery 1.6之后可用。如果您使用的是早期版本,则可以使用:

编辑

由于ASP.NET会损坏控件的ID,因此有几种不同的方法可以在页面上找到控件,例如:

$('[id$=txtTemp]')
$('#<%= txtTemp.ClientID %>')
现在,您可以通过以下方式搜索iframe内容,就像它是文档一样:

iframe.getElementByID('<%= txtTemp.ClientID %>').disabled = true;
iframe.getElementByID(“”).disabled=true;

您标记了Jquery,因此我想我可以提供一个Jquery解决方案:

if (some_condition)
{
  $('#_ctl21_m_txtTemp').attr('disabled','disabled');
}

如果您使用jQuery,您可以

$('#').attr(“禁用”、“禁用”)


这可以确保在移动文本框时获得正确的客户端id。

对于jQuery,我不会使用document.getElementById,这完全不是重点

textBoxTemp = $('#_ctl21_m_txtTemp'); // weird name, by the way
textBoxTemp.attr('disabled','disabled');

语法应该是

textBoxTemp.disabled="disabled"  

您可以试一试。

我不知道您是想在jQuery还是普通的旧Javascript中实现这一点,但这两种语言都有:

Javascript

(您可能正在查找readonly属性,而不是disabled属性)

jQuery

$('#_ctl21_m_txtTemp').attr('readonly',true);

您确定testBoxTemp存在吗?听起来像是在使用ASP控件-查看源页面并仔细检查元素的Y及其_ctl21_m_txtemp是否可以显示与txtemp相关的aspx页面标记?这是生成的名称,因为它是一个服务器控件我尝试了这个。。但这对我不起作用。。jquery行运行之前的一个警报显示它进入if语句。但是jquery行不起作用..尝试了两种。。它似乎不起作用。。我怀疑问题出在别的地方。。如果字段位于页面内的一个框架中,那么我如何获得id并在这种情况下禁用它..因为现在,无论我尝试什么,jqyer、javascript和这么多可能的解决方案..它根本不会禁用控件..尝试了所有这些想法。。它似乎不起作用。。我怀疑问题出在别的地方。。如果字段位于页面内的一个框架中,那么我如何获得id并在这种情况下禁用它..因为现在,无论我如何尝试,jqyer、javascript和这么多可能的解决方案..它根本不会禁用控件..据我所知,您的页面有一个iframe,您正试图从父页面禁用iframe中的文本框。?我不知道。。它在一个框架内。。或者不。。这应该是简单的修复,无论我尝试它不工作。。让我觉得控件在页面上并不简单。。如果我这样做的话,可能是找不到id。我想我们需要更多地查看您的html,才能真正帮助您。让我们
textBoxTemp.disabled="disabled"  
var textBoxTemp = document.getElementById('_ctl21_m_txtTemp');
textBoxTemp.readonly = true;
$('#_ctl21_m_txtTemp').attr('readonly',true);