【问题标题】:Javascript OnBlur not workingJavascript OnBlur 不工作
【发布时间】:2011-07-12 00:18:21
【问题描述】:

我有一个默认禁用的文本框... onclick 可以正常工作并使其可以输入,但是当我单击单选按钮时...它不会再次禁用文本框

有什么线索吗?

<input type="radio" name="group1" value="website" OnBlur="javascript:document.getElementById('websiteurl').disabled = true;" OnClick="javascript:document.getElementById('websiteurl').disabled = false;">
<input name="websiteurl" type="text" id="websiteurl" value="http://" size="50" disabled="true" />

提前致谢

【问题讨论】:

  • 当您的意思是单击单选按钮时,您的意思是单击另一个单选按钮?

标签: javascript html textbox radio onblur


【解决方案1】:

没有“启用”属性。您必须将 disabled 设置为 "disabled" 以禁用输入,或删除属性 "disabled" 以启用它。

disabled="true" 是错误的语法,应该是 disabled="disabled"

【讨论】:

    【解决方案2】:

    没有属性enabled。您使用disabled 并将其设置为truefalse

    除此之外:

    使用小写属性(否则它不是有效的 XHTML);无需将javascript: 放在它前面。 此外,最好从 JavaScript 代码附加事件而不是内联它们。特别是如果您使用像 jQuery 这样的库,这非常容易:

    $('input[name=group1][value=website]').blur(function() {
        $('#websiteurl').attr('disabled', 'true');
    }).click(function() {
        $('#websiteurl').removeAttr('disabled');
    });
    

    (当然#id 会比input[name=group1][value=website] 选择器好得多)

    【讨论】:

      【解决方案3】:

      将启用更改为禁用,它将起作用。

      没有启用的属性。

      【讨论】:

      • 是的,抱歉,我试图让它工作的代码不正确......它已禁用=true,但仍然无法工作
      【解决方案4】:

      不完全确定上下文,但在这种情况下,复选框是否更适合禁用或启用文本框?

      $('input[type="checkbox"]').click(function() {
          if (this.checked) {
              $('#websiteurl').removeAttr('disabled');
          }
          else {
              $('#websiteurl').attr('disabled', true);
          }
      });
      

      【讨论】:

        【解决方案5】:

        尝试disabled=true 而不是enabled=false

        【讨论】:

        • 是的,抱歉,我试图让它工作的代码不正确......它已禁用=true,但仍然无法工作
        猜你喜欢
        • 2016-09-24
        • 1970-01-01
        • 1970-01-01
        • 2011-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-01
        相关资源
        最近更新 更多