【问题标题】:Disabling select option does not saves value in database禁用选择选项不会在数据库中保存值
【发布时间】:2016-06-23 08:45:44
【问题描述】:

我有一个 Select 选项,我正在通过下面的 javascript 禁用它

document.getElementById('CmbDepartment').disabled = true;

但是在禁用之后,数据库中的值被保存为0

在删除 disable 部分后,我的值得到了正确保存。

但我想禁用Select 列表。

这是我的 Select 列表的 HTML

<select id="CmbDepartment" runat="server" style="width: 25%" onchange="FunEmpFill()">
     <option value="0">--Select--</option>
</select>

那么还有其他方法可以解决这个问题吗?

【问题讨论】:

  • @NikhilGirraj:链接代码用于文本框而不是select 选项。
  • 重点是,disabled 字段不会与表单一起提交。
  • @NikhilGirraj:是的,我明白了。那么解决方案是什么?
  • 所以当你的选择被禁用时你想要的数据库列中的内容。 0还是空

标签: javascript c# html asp.net


【解决方案1】:

如果我理解正确,您已将选项值分配为 0。然后禁用了选择标签,因此它将采用默认选项值。

您可以更改选项值或完全删除。

或者你可以动态地为select标签赋值并通过JS选择

  1. $('#CmbDepartment').append($('&lt;option&gt;', {value:1, text:'One'}));
  2. $('#CmbDepartment').append('&lt;option val="1"&gt;One&lt;/option&gt;');
  3. var option = new Option(text, value); $('#CmbDepartment').append($(option));

【讨论】:

    【解决方案2】:

    让我提出一个技巧。 我没有禁用选择,而是将样式属性pointer-events 设置为none。另外,我添加了opacity: 0.5; 使其看起来被禁用。 这不会阻止 select 控件与其他表单元素一起提交。

    尝试运行下面的代码 sn-p。

    .disabled {
      pointer-events: none;
      opacity: 0.5;
    }
    <select>
      <option>Value 1</option>
      <option>Value 2</option>
      <option>Value 2</option>
    </select>
    
    <button onClick="document.getElementsByTagName('select')[0].classList.add('disabled');">Disable Select</button>

    【讨论】:

    • 对你的逻辑很满意,但它会在我需要的时候启用吗?
    • 是的,只需从元素中删除类. disabled
    • 你可以在select 上应用相同的课程并显示。因为我不想在button click
    猜你喜欢
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 2020-12-18
    相关资源
    最近更新 更多