javascript将变量添加到输入字段rails

javascript将变量添加到输入字段rails,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我有一个Javascript变量,它获取选择框的值。我想用value=选择框的值附加输入字段。然而,他无法让这项工作 $(function () { $(document).on("change", "#extra_crew", function (e) { var extra_crew = $('#extra_crew').val(); $('#extra_crew_area').append( ' <div cla

我有一个Javascript变量,它获取选择框的值。我想用value=选择框的值附加输入字段。然而,他无法让这项工作

$(function () {
    $(document).on("change", "#extra_crew", function (e) {
        var extra_crew = $('#extra_crew').val();
        $('#extra_crew_area').append(
                ' <div class="col-sm-12 m-t-10 m-b-10 no-padding">'
                + '<%= text_field_tag :reservation_type, "", class: "form-control m-b-10", :value => "' 
                + extra_crew 
                + '" %>'
                + '</div>');
        console.log(extra_crew);
    });
});
它工作得很好,但输入字段中的字符串似乎无法连接

然后是这样的


我已经测试了你的代码,它会工作的。但这里是你的服务器代码吗

“+额外船员+”%>


我认为它是ruby,不会在浏览器上运行

我已经测试了你的代码,它会工作的。但这里是你的服务器代码吗

“+额外船员+”%>


我认为它是ruby,不会在浏览器上运行,只需从文本字段中删除“+extra_crew+”,并在下面添加js即可

$('#extra_crew_area').find(".form-control:last input[type='text']").val(extra_crew);

只需从文本字段中删除“+extra_crew+”,并在下面添加js

$('#extra_crew_area').find(".form-control:last input[type='text']").val(extra_crew);

我认为您可能需要调用字符串“+extra_crew+”上的html_safe,以告诉rails在不将引号转义到html实体的情况下渲染它:

+'<%= text_field_tag :reservation_type, "", class: "form-control m-b-10", :value => "'+extra_crew+'".html_safe %>'
但是,我不确定这是否会起作用-更传统的方法是完全用javascript创建div,然后和文本字段,而不是尝试使用Rails创建输入标记-类似于这样:

var newDiv = $("<div>", {id: "foo", class: "col-sm-12 m-t-10 m-b-10 no-padding"});
var textField = $("<input>", {type: "text", name: "reservation_type", class: "form-control m-b-1", value: extra_crew });
newDiv.append(textField);
$('#extra_crew_area').append(newDiv);
你可以稍微浓缩一下:

$('#extra_crew_area').append(
    $("<div>", {id: "foo", class: "col-sm-12 m-t-10 m-b-10 no-padding"}).append(
        $("<input>", {type: "text", name: "reservation_type", class: "form-control m-b-1", value: extra_crew })
    )
);

我认为您可能需要调用字符串“+extra_crew+”上的html_safe,以告诉rails在不将引号转义到html实体的情况下渲染它:

+'<%= text_field_tag :reservation_type, "", class: "form-control m-b-10", :value => "'+extra_crew+'".html_safe %>'
但是,我不确定这是否会起作用-更传统的方法是完全用javascript创建div,然后和文本字段,而不是尝试使用Rails创建输入标记-类似于这样:

var newDiv = $("<div>", {id: "foo", class: "col-sm-12 m-t-10 m-b-10 no-padding"});
var textField = $("<input>", {type: "text", name: "reservation_type", class: "form-control m-b-1", value: extra_crew });
newDiv.append(textField);
$('#extra_crew_area').append(newDiv);
你可以稍微浓缩一下:

$('#extra_crew_area').append(
    $("<div>", {id: "foo", class: "col-sm-12 m-t-10 m-b-10 no-padding"}).append(
        $("<input>", {type: "text", name: "reservation_type", class: "form-control m-b-1", value: extra_crew })
    )
);

不管它是否是ruby,问题是我得到额外的\u-crew作为字符串而不是值,可能是因为引号标记的缘故。不管它是否是ruby,问题是我得到额外的\u-crew作为字符串而不是值,可能是因为引号标记的缘故。将单引号移到+extra-crew+@ana周围,但不起作用,仍然字符串为+extra_-crew+extra_-crew\u区域是div?删除+extra_-crew+@Anand周围的单引号,仍然字符串为+extra_-crew+extra_-crew\u区域是div?