Javascript 通过jQuery为html元素的属性分配空字符串

Javascript 通过jQuery为html元素的属性分配空字符串,javascript,jquery,Javascript,Jquery,在我当前的spring项目中,我通过以下jQuery代码为添加元素: function load_options(target, lista) { target.empty(); target.append("<option class=\"form-control\" value=\"\"></option>"); $.ajax({ type: 'GET', url: lista }).done(funct

在我当前的spring项目中,我通过以下jQuery代码为
添加元素:

function load_options(target, lista) {
    target.empty();
    target.append("<option class=\"form-control\" value=\"\"></option>");
    $.ajax({
        type: 'GET',
        url: lista
    }).done(function(data){
        var json = jQuery.parseJSON( data );
        $.each(json.item, function(index, item) {
            target.append('<option class="form-control" value="'+item.id+'">'+item.nome+'</option>');
        });
    });
}
函数加载\u选项(目标,列表A){
target.empty();
目标。追加(“”);
$.ajax({
键入:“GET”,
网址:lista
}).完成(功能(数据){
var json=jQuery.parseJSON(数据);
$.each(json.item,函数(索引,项){
target.append(“”+item.nome+“”);
});
});
}
我的问题是这一行:

target.append("<option class=\"form-control\" value=\"\"></option>");
target.append(“”);
当我运行应用程序并打开jsp页面时,此选项如下所示:

<option class="form-control" value></option>

当我需要的是这个:

<option class="form-control" value=""></option>


任何人都知道如何使用上面列出的jQuery代码获取此信息吗?

您只需检查空字符串
'
,然后将其分配给
null

if ($.trim(value) === '') {
    value = null; // or set whatever value you need to
}

我没有很好的解释为什么会发生这种情况,但我无法用jQuery代码解决这个问题。相反,我将与select相关的jsp代码修改为:

        <form:select path="${entry}.id" class="form-control select" data-lista="${url}">
            <form:option value="${null}" label=""/>
        </form:select>

我的jQuery代码是:

$("select.select").each(function(){
    var target = $(this);
    var lista = $(this).data('lista');
    load_options(target, lista);
});

function load_options(target, lista) {
    $.ajax({
        type: 'GET',
        url: lista
    }).done(function(data){
        var json = jQuery.parseJSON( data );
        $.each(json.item, function(index, item) {
            var option = $('<option class="form-control" value="'+item.id+'">'+item.nome+'</option>');
            if(option.length > 0)
                target.append(option);
        });
    });
}
$(“select.select”)。每个(函数(){
var目标=$(此);
var lista=$(this.data('lista');
加载选项(目标、列表A);
});
函数加载选项(目标,列表A){
$.ajax({
键入:“GET”,
网址:lista
}).完成(功能(数据){
var json=jQuery.parseJSON(数据);
$.each(json.item,函数(索引,项){
var选项=$(''+项.nome+'');
如果(option.length>0)
target.append(选项);
});
});
}

这就解决了我的问题。

我的第一个问题是,为什么需要查看引号?@Karl AndréGagnon如果没有引号,表单将提交以形成一个非空值,当应用程序尝试将数据保存到数据库中时,是什么导致了错误。我使用
进行了测试,没有出现错误。我不确定,但您可以尝试--target.append(“”)--嗯,这并不是因为检查员没有出示报价,这意味着他们不在那里。看看小提琴:@karlandréGagnon那么为什么发送到服务器的值不是空的?应该是吧?