【问题标题】:Disable input fields when clicking the other input单击其他输入时禁用输入字段
【发布时间】:2015-04-24 07:48:40
【问题描述】:

我想在单击所选输入之一时禁用所选输入字段。

示例: 1.用户选择输入栏“姓名”,输入栏“公司”和“公司编号”被禁用; 2.“进入”字段时该字段被禁用,而不是在其中写入。

这是我的代码;它有效,但不完全符合预期。它在用户开始输入时禁用。我想在“进入”/点击时禁用它。

var disableField = function () {
  var state = document.getElementById("name").value.length > 0;
  document.getElementById("company").disabled = state;
  document.getElementById("number").disabled = state;
};

有什么建议吗?提前谢谢!

【问题讨论】:

  • 尝试写 onfocus 事件而不是 onkeyup

标签: javascript jquery html input


【解决方案1】:

您在 jQuery 下标记了您的问题,那么您为什么不尝试一些 jQuery!使用类似的东西-

<script>
$('#elementId').click(function(){
  $("#someElementId").attr('disabled', true);
});
</script>

【讨论】:

  • 哇!这太棒了,太容易了。非常感谢!
  • 不客气 :) 如果这对你有用,那么别忘了点赞。
  • 我试过了,但我不能投票,因为我没有足够的声誉(即 15 岁以上),但是伙计 - 你为我节省了很多工作!非常感谢,我知道这与 +1 代表不同,但请记住,周末会有更好的人! :)
【解决方案2】:

您应该使用.onfocus 事件。

// name, company, company_number are the elements

function func(){
    if(this.value.length == 0) company_number.disabled = true;
    else company_number.disabled = false;
}

name.onfocus = func;
company.onfocus = func;

【讨论】:

    【解决方案3】:

    尝试像这样使用onfocus 事件:

    <input type="text" class="form-control" id="name" placeholder="Name" onfocus="disableField()"/>
    

    当您单击并在输入字段中设置焦点时会激活此事件。

    相反的事件(当点击场外时)是onblur

    【讨论】:

    • 是的,我已经尝试过了,但没有结果(在 Chrome/FFx 上至少没有任何操作;它的行为与 onkeyup 相同)。感谢您的回复。
    猜你喜欢
    • 2015-12-18
    • 2019-01-19
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 2019-04-05
    相关资源
    最近更新 更多