欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用JavaScript腳本無法直接改變Asp.net中Checkbox控件的Enable屬性的解決方法

 更新時(shí)間:2015年09月16日 10:46:39   投稿:mrr  
今天工作中遇到個(gè)小問題,情況如下,當(dāng)我在后臺頁面中設(shè)置Checkbox的Enable的值為false時(shí),我在前端頁面中使用腳本(chk.disabled = false),無法改變disabled的值為false,下面看看小編是怎么解決此問題的,需要的朋友一起了解了解吧

 今天工作中遇到個(gè)小問題,情況如下,當(dāng)我在后臺頁面中設(shè)置Checkbox的Enable的值為false時(shí),我在前端頁面中使用腳本(chk.disabled = false),無法改變disabled的值為false,代碼如下:

 前臺代碼:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title></title>
  <script type="text/javascript">
    function foo() {
      var chk = document.getElementById("<%=chkBlog.ClientID %>");
      if (chk.disabled) {
        chk.disabled = false;
      }
      else {
        chk.disabled = true;
      }
    }
  </script>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:CheckBox ID="chkBlog" runat="server" Text="http://owen-zhang.cnblogs.com"></asp:CheckBox>
    <asp:Button ID="btnCheck" runat="server" Text="Client check" OnClientClick="foo();return false;" />
  </div>
  </form>
</body>
</html>

 后臺代碼:

  protected void Page_Load(object sender, EventArgs e)
  {
    this.chkBlog.Enabled = false;
  }

為什么會出現(xiàn)這種情況呢,讓我們看一下html的源碼,如下:

<span disabled="disabled">
  <input id="chkBlog" type="checkbox" name="chkBlog" disabled="disabled" />
  <label for="chkBlog">http://owen-zhang.cnblogs.com</label>
</span>

原來Checkbox控件在Enable屬性為false時(shí),輸出到Html中變成了一組控件(element),而不是我們預(yù)想的一個(gè)控件。

方案一:

在上面的代碼中,雖然我們改變了chkBlog控件的disabled屬性為false,但是chkBlog控件的父節(jié)點(diǎn)(<span>)的disabled屬性卻還是disabled。這個(gè)就有一個(gè)優(yōu)先級的問題了,一般是父節(jié)點(diǎn)的優(yōu)先級要大于子節(jié)點(diǎn),所以,我們要改變父節(jié)點(diǎn)的disabled的值,上面的客戶端腳本代碼要做一點(diǎn)小的修改,如下:

<script type="text/javascript">
    function foo() {
      var chk = document.getElementById("<%=chkBlog.ClientID %>");
      if (chk.disabled) {
        chk.parentNode.disabled = false;
        chk.disabled = false;
      }
      else {
        chk.parentNode.disabled = true;
        chk.disabled = true;
      }
    }
  </script>

只有加上上面高亮顯示的代碼。

方案二:

    使用方案一的話,就必須添加一條額外的改變父節(jié)點(diǎn)disabled屬性的語句,當(dāng)要修改的地方比較多的時(shí)候,就比較麻煩了,而且也不符合一般的代碼邏輯,有冗余的代碼。有沒有其他更簡練的辦法呢?有~,我們只需要修改后臺代碼,如下:

  protected void Page_Load(object sender, EventArgs e)
  {
    this.chkBlog.InputAttributes.Add("disabled", "disabled");
  }

也就是,我們不改變Checkbox的Enable屬性,而是通過InputAttributes中的屬性設(shè)置,改變了Checkbox輸出到客戶端的Html內(nèi)容,如下:

<input id="chkBlog" type="checkbox" name="chkBlog" disabled="disabled" />
<label for="chkBlog">http://owen-zhang.cnblogs.com</label>

之前“冗余的”父節(jié)點(diǎn),現(xiàn)在沒有了。

相關(guān)文章

  • js位運(yùn)算在實(shí)際中使用的實(shí)例教程

    js位運(yùn)算在實(shí)際中使用的實(shí)例教程

    我們可能很少在編程中用位運(yùn)算,如果沒深入學(xué)習(xí),可能也很難理解,下面這篇文章主要給大家介紹了關(guān)于js位運(yùn)算在實(shí)際中使用的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 原生JS實(shí)現(xiàn)的雪花飄落動畫效果

    原生JS實(shí)現(xiàn)的雪花飄落動畫效果

    這篇文章主要介紹了原生JS實(shí)現(xiàn)的雪花飄落動畫效果,涉及javascript數(shù)值運(yùn)算及頁面元素屬性動態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-05-05
  • JavaScript自定義等待wait函數(shù)實(shí)例分析

    JavaScript自定義等待wait函數(shù)實(shí)例分析

    這篇文章主要介紹了JavaScript自定義等待wait函數(shù),實(shí)例分析了自定義等待函數(shù)的實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
    2015-03-03
  • js實(shí)現(xiàn)簡單廣告小窗口

    js實(shí)現(xiàn)簡單廣告小窗口

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡單廣告小窗口,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 微信小程序日歷組件使用方法詳解

    微信小程序日歷組件使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了微信小程序日歷組件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • 值得分享的輕量級Bootstrap Table表格插件

    值得分享的輕量級Bootstrap Table表格插件

    這篇文章為大家分享了輕量級Bootstrap Table表格插件,以表格的形式顯示的數(shù)據(jù),支持單選,復(fù)選框,排序,分頁,顯示/隱藏列等操作,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 使用Bootstrap美化按鈕實(shí)例代碼(demo)

    使用Bootstrap美化按鈕實(shí)例代碼(demo)

    這篇文章主要介紹了使用Bootstrap美化按鈕實(shí)例代碼(demo),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • 按給定幾率進(jìn)行隨機(jī)抽取的js代碼

    按給定幾率進(jìn)行隨機(jī)抽取的js代碼

    沒啥技術(shù)含量的隨機(jī)抽取,需要的朋友可以參考下。
    2010-12-12
  • 詳解JavaScript中的坐標(biāo)和距離

    詳解JavaScript中的坐標(biāo)和距離

    在前端開發(fā)中總會遇到各種各樣需要使用或計(jì)算坐標(biāo)和距離的情況,于是便有了整理記錄的想法,即加深了印象,又方便隨時(shí)查閱。
    2019-05-05
  • JavaScript操作元素實(shí)例大全

    JavaScript操作元素實(shí)例大全

    JavaScript可以對各種網(wǎng)頁元素進(jìn)行操控,下面這篇文章主要給大家介紹了關(guān)于JavaScript操作元素的相關(guān)資料,文中通過多個(gè)實(shí)例詳細(xì)介紹了操作元素的方法,需要的朋友可以參考下
    2021-06-06

最新評論