【问题标题】:set empty on first value in combobox在组合框中的第一个值上设置为空
【发布时间】:2017-01-12 13:38:28
【问题描述】:

如何将第一个值设置为null?我使用了这些代码,但它不起作用?如何在组合框上设置占位符?提前谢谢你。

<select class="ddlASN"></select>
var result = 'a,b,c,d';

$('.ddlASN').html($.map(result.split(','), function(item) {
    return $('<option></option>').val('').html('')[0].outerHTML
    return $('<option></option>').val(item).html(item)[0].outerHTML
}).join(''));

【问题讨论】:

标签: javascript jquery


【解决方案1】:

你可以试试这个。

    var result = 'a,b,c,d';

// placeholder option
var dd_content = '<option>-- Select an option --</option>';

// add rest of the options
jQuery.map(result.split(','), function(item) {
  dd_content += '<option value="'+item+'">'+item+'</option>';
});

jQuery('.ddlASN').html(dd_content);

它将防止在提交后重复获取值。

如果它不起作用,请告诉提交表单后实际发生的情况。是否将新值分配给组合框...

【讨论】:

  • 完全没问题^_^
【解决方案2】:

试试这个:

$(document).ready(function(){

    var result = 'a,b,c,d';
    var arr = result.split(',');

    $sel = $(".ddlASN");

    $sel.append("<option></option>");
    //$sel.append("<option>PlaceHolder</option>");

    for (var i =0 ; i < arr.length; i++) {

        $sel.append("<option>" + arr[i] + "</option>")

    }

})

最终代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    
   Select : <select class="ddlASN"></select>
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
   <script>
$(document).ready(function(){
    
    var result = 'a,b,c,d';
    var arr = result.split(',');
    
    $sel = $(".ddlASN");
    
    $sel.append("<option></option>");
    
    for (var i =0 ; i < arr.length; i++) {
        
        $sel.append("<option>" + arr[i] + "</option>")
        
    }
    
})
    </script>
    </body>
</html>

【讨论】:

  • 当我添加一个值时它在提交时重复
【解决方案3】:

如何将第一个值设置为 null?我使用了这些代码,但它不起作用?如何在组合框上设置占位符?

您可以采取的一种方法是,您可以使用append() 添加您需要的所有选项,而不是使用html(),而不是使用append() 添加您需要的所有选项,您可以使用val() 添加值到选项和text() 以添加显示的文本:

var result = 'a,b,c,d';

// placeholder option
var placeholderOption = $('<option></option>').val('null').text('placeholder');
$('.ddlASN').html(placeholderOption);

// add rest of the options
$('.ddlASN').append($.map(result.split(','), function(item) {
  return $('<option></option>').val(item).text(item);
}));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="ddlASN"></select>

注意:您应该注意的重要一点是,拥有多个 return 语句在 JavaScript 中将不起作用,因为在第一个之后的任何 return 都将永远无法到达。

map 方法将采用一个数组并根据您从其回调返回的内容转换每个项目。这意味着您可以返回一个新的选项元素,其值和文本设置为您需要的值,无需返回任何其他内容。

【讨论】:

  • 当我添加一个值时它在提交时重复
  • 在这种情况下,您只需在每次提交时运行上述代码之前调用$('.ddlASN').empty(),它就会起作用
  • 或者你可以在添加占位符选项时只使用.html。这将覆盖已经存在的任何内容
猜你喜欢
  • 1970-01-01
  • 2013-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
相关资源
最近更新 更多