使用JQuery更改ASP.NET Web App的ReadOnly属性

时间:2015-05-19 23:27:56

标签: javascript jquery html asp.net

这是我的HTML

    <td style="width: 4pt;">
</td>
<td>
    <span style="display: inline-block; color: Black; font-family: Arial; font-size: 9pt;
        font-weight: normal; width: 100pt; vertical-align: top;">Logic Ref Symbol</span>
</td>
<td>
    <input name="ctl00$MainContent$TabContainer1$TabPanel2$GeneralInformationControl$Reference Path"
        type="text" readonly="readonly" id="MainContent_TabContainer1_TabPanel2_GeneralInformationControl_Reference Path"
        class="textbox" groupname="Logical Symbol" style="font-family: Arial; font-size: 9pt;
        font-weight: normal; width: 150pt;" />
</td>
<td style="width: 4pt;">
</td>
<td style="width: 4pt;">
</td>
<td>
    <span style="display: inline-block; color: Black; font-family: Arial; font-size: 9pt;
        font-weight: normal; width: 100pt; vertical-align: top;">Logic Assignee</span>
</td>
<td>
    <select name="ctl00$MainContent$TabContainer1$TabPanel2$GeneralInformationControl$Logic Assignee"
        id="MainContent_TabContainer1_TabPanel2_GeneralInformationControl_Logic Assignee"
        class="dropdownlist" groupname="Logical Symbol" style="font-family: Arial; font-size: 9pt;
        font-weight: normal; width: 150pt;">
        </td>

最初加载页面时,逻辑参考符号为ReadOnly。当Logic Needed下拉菜单设置为Yes时,ReadOnly属性应该消失,用户应该能够输入该信息。 我已经通过了大量的论坛并尝试了不同的事情,但在重置只读属性方面没有运气。

事实上,有一篇帖子说我们无法将readonly属性设置为False,这可能是一个安全问题。但是,我尝试了很多方法,包括

$('#'+logic_Type).prop('readonly', false);//Where Logic_Type contains my ID Name
var Logic_Type= $('[id$=' + logic_Type + ']').get(0).removeAttr('readonly');//This throws a Syntax error as unrecognized Expression

我也试过单引号和双引号。什么都行不通,我错过了什么吗? ASP.NET4.0是否真的支持将readonly属性重置为false? 我也尝试过document.getAttributebyId)方法和tr = ied来重置proiperty但是返回null。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

由于您的ID包含空格,因此您需要围绕值包含分隔符:

$('[id="' + logic_Type + '"]').prop('readonly', false);

另一种选择当然是不在id中使用空格,然后您可以更轻松地访问它。