如何在选中复选框而不刷新页面时禁用select元素

亲爱的朋友们,这是我在这个论坛上的帖子,我希望得到最大的回复. 当用户检查复选框选择元素时,应禁用选择元素,并且whehn用户取消选中,它应该再次启用,而无需使用JavaScript刷新页面...... 任何帮助将不胜感激……

# 回答1

:toggleselect();" value =" 1" /> 在JavaScript中 : 函数toggleselect() { 如果document.getElementById(" CHK1").值== 1 { document.getElementById(" select").禁用= true; } 别的 { document.getElementById(" select").禁用= false; } } 请确保给所有标签提供ID. 否则,代码可能不起作用.
# 回答2

dswethar谢谢您的答复.我尝试了它,但似乎没有用,我将此代码放在HTML文档中尝试..请检查一下,让我知道我在这里做错了什么

选择 | 换行 | 行号
  1. <script type="text/javascript">
  2. function toggleSelect()
  3. {
  4.  
  5. if document.getElementById("chk1").value == 1
  6. {
  7. document.getElementById("select").disabled = true;
  8. }
  9. else
  10. {
  11. document.getElementById("select").disabled = false;
  12. }
  13.  
  14. }
  15. </script><html>
  16. <body>
  17.  
  18. <input type="checkbox" id="chk1" name="chk1" onchange="javascript :toggleSelect();" value="1" />
  19. <select id="chk1" name="select">
  20. <option value="value1">option 1</option>
  21. <option value="value2">option 2</option>
  22. <option value="value3">option 4</option>
  23. </select></body>
  24. </html>
# 回答3

你好, 有一个ID问题 - 选择未命名. 这是工作脚本. 函数toggleselect() { if(document.getElementById(" chk1").检查== true) { document.frm1.select1.disabled = true; } 别的 { document.getElementById(" select1").禁用= false; } } - > :toggleselect();" value =" 1" /> 选项1 选项2 选项4
# 回答4

谢谢Agian亲爱的朋友的出色工作,很抱歉再次分散您...但是我的目标尚未实现,我的表格有两个选择,我希望每当检查复选框时,都应禁用两个选择.我尝试了. 其他具有相同ID的选择.但是甚至没有一个选择禁用. 很快,我想要的是应该有1个复选框,每当检查复选框时,两个选择都应被禁用.
# 回答5

你好, 您应该有另一个具有不同名称的选择框. 在JavaScript中,您需要在IF和其他条件中添加另一个语句,这些条件具有第二个选择框名称. 例如: document.frm1.select1.disabled = true; 只需添加另一行 document.frm1.select2.disabled = true; 对于Else语句也一样. 希望这可以帮助.
# 回答6

感谢您的共同生产,但我的问题得到了解决. 我在网上找到了这个脚本

选择 | 换行 | 行号
  1. <script Language="JavaScript"> 
  2. var _T = "locked";
  3. var _F = "unlocked";
  4. function lockIt(_P) 
  5.  {
  6.    var _L = 
  7.    document.aform.lck.value;
  8.    if(_L==_P)return;
  9.  
  10. document.aform.sub_cat.disabled=(document.aform.lck.value=(_L==_F)?_T:_F)==_T;
  11. document.aform.main_cat.disabled=(document.aform.lck.value=(_L==_F)?_T:_F)==_T;
  12. }
  13. function isDis() { 
  14. return (document.aform.lck.value==_T); 
  15. }
  16. </script>
  17. <form Name="aform" ID="aform" Action="" Method="post">
  18. Sub Category : <select name="sub_cat" ID="sub_cat"  onfocus="if(isDis())blur();"> 
  19. <option value="0" selected>Business</option> 
  20. <option value="1">Graphics</option> 
  21. <option value="2">Home &amp; Hobby</option>
  22. <option value="3">Utilities</option>
  23. <option value="4">Web utilities</option>
  24. </select>
  25.  Main Cat <select name="mian_cat" ID="main_cat"  onfocus="if(isDis())blur();"> 
  26. <option value="0" selected>Business</option> 
  27. <option value="1">Graphics</option> 
  28. <option value="2">Home &amp; Hobby</option>
  29. <option value="3">Utilities</option>
  30. <option value="4">Web utilities</option>
  31. </select
  32. <br><br>
  33. save & send : <input type=radio checked onclick="lockIt(_F)" id=radio1 name=radio1 value="1">
  34. don not save only send :<input type=radio  onclick="lockIt(_T)" id=radio1 name=radio1 value="2"> 
  35. <input type=hidden name="lck" value="unlocked"> 
  36. </form> 

这几乎是我的需要 我想要的更改是,它使用两个无线电元素禁用和启用了选择,我只需要一个复选框而不是两个无线电,如果用户检查复选框选项,两个选择都应被禁用,如果取消选中,则应该再次启用它. 不是修改,但如果你能做到.

# 回答7

你好, 我已经按照您想要的方式给了您代码. 我无法理解您给出的完整代码. 我为此感到抱歉. 您现在只需要在JavaScript中添加2个句子即可. 因为您希望将2个选择框禁用 /启用. 请尝试. 我100%确定会 工作.
# 回答8

感谢您的代码. 有用.

标签: Javascript

添加新评论