2011-12-16 56 views
3

我有這段代碼,但它不能與asp.net頁面一起使用,該頁面有一個母版頁以及ajax控件工具包(我已包含ToolScriptManager)。該代碼是如何編寫jQuery禁用從單選按鈕列表中選擇項目的下拉菜單

<script type="text/javascript"> 
    jQuery(function() { 


     $("#<%=RadioButtonList1.ClientID%>").change(function() { 
      var rbvalue = $("input[@name=<%=RadioButtonList1.UniqueID%>]:radio:checked").val(); 
      if (rbvalue == "No") { 
       $("#DropDownList1").attr("disabled", false); 
      } 
      else if (rbvalue == "Yes") { 
       $("#DropDownList1").attr("disabled", true); 
      } 
     }); 
    }); 
</script> 
+1

雖然我不知道它的根源,做的第一件事就是改變這些`.attr()`調用`.attr(「禁用」,「」)`和`。 attr(「禁用」,「禁用」),分別。 – Interrobang 2011-12-16 10:13:57

回答

0

如果作品,未經母版頁精,你要看看可能發生變化。最簡單的答案是,它引入了一個JavaScript錯誤,導致其餘代碼不能執行。我會嘗試幾件事:

  1. 查看此代碼的來源,當工作而不是。只是爲了確認.NET代碼正確替換了RadioButton ID值。
  2. 假設代碼相同,使用主頁面(非工作版本)加載頁面,並打開FireFox中的Firebug或Chrome debugger。確保頁面加載時沒有javascript錯誤。事實上,這也是確認代碼按預期運行的好方法,因爲您可以放入JavaScript斷點。
  3. 或者簡單的方法 - 添加一個提醒('here!');在更改函數內(上面的「var rbvalue = ...」)。這將確認它是否正在運行,這將幫助您確定該錯誤是否由該功能未運行引起,或者運行不正確。
1
<script type="text/javascript"> 
    $(document).ready(function() { 

     $('#RadioButtonList1').change(function() { 
      var rbvalue = $('#RadioButtonList1').val(); 
      if (rbvalue == "No") { 
       $('#DropDownList1').attr('disabled', false); 
      } 
      else if (rbvalue == "Yes") { 
       $('#DropDownList1').attr('disabled', true); 
      } 
     }); 
    }); 
</script> 
相關問題