【问题标题】:how user to stop selecting the select option without disabling it用户如何停止选择选择选项而不禁用它
【发布时间】:2014-12-11 16:19:26
【问题描述】:

我的表单中有一个选择选项。它将由用户选择一次,并在更改时向服务器发出 ajax 请求并呈现表单。该呈现的表单还包含与他/她选择的选项相同的字段。所以我不希望他们再次选择该选项。通过禁用它,表单将不会提交其值。那么有什么选择呢。

【问题讨论】:

  • 你可以删除它吗?
  • 在您的 ajax 请求结束时将每个
  • 不行,必须提交
  • 您可以将选定选项的属性设置为已选择,即
  • 可能是只读的。

标签: javascript jquery html


【解决方案1】:

选项 1:您可以通过将索引存储在数组中来跟踪用户选择的选项。因此,在进行 ajax 调用之前,您可以检查是否已经成功调用。在每次成功调用时,您都会将其推送到数组中。

var queriedItems = [];
function onItemChange(this) {
    var index = this.selectedIndex; //value can also be used
    if (queriedItems.indexOf(index) === -1) { //not queried so far
        /*perform ajax call
          onscussess/readystatechanged
            queriedItems.push(index)       
       */
    }
}

选项 2: 使用 css 和 divs 而不是 html 选择来构建自定义下拉菜单。它将允许您灵活地添加适当的 css 类来模仿用户已经选择的特定选项。您可以通过谷歌搜索轻松找到如何实现自定义下拉菜单。 您可以使用隐藏字段来存储所选值,以便默认情况下将其提交给服务器。

【讨论】:

    【解决方案2】:

    您可以像这样在由 ajax 创建的 select 上使用双重事件

    var val ="";
    $('#check').on('click',function(){
        val=$(this).val();
    });
    
    $('#check').change(function(){
    $(this).val(val);
    })
    

    Fiddle DEMO

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 2013-05-10
      • 2016-10-06
      • 2017-01-17
      相关资源
      最近更新 更多