2016-05-16 157 views
0

我有一個Javascript變量,它獲取選擇框的值。我想追加輸入字段值=選擇框的值。但是,無法讓這個工作。javascript添加變量到輸入欄rails

$(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); 
    }); 
}); 

它工作得很好,但似乎extra_crew在輸入字段無法將字符串。

然後它顯示這樣。

enter image description here

+0

左右'+ extra_crew +' – Anand

+0

@Anand沒有工作,仍然string取消單引號爲+ extra_crew + –

+0

extra_crew_area是一個div? – Thorin

回答

1

我想你可能需要調用html_safe上的字符串"'+extra_crew+'"來告訴軌道渲染它,而不會將引號轉義爲html實體:

+'<%= text_field_tag :reservation_type, "", class: "form-control m-b-10", :value => "'+extra_crew+'".html_safe %>' 

但是,我不確定這會工作 - 更傳統的方法是創建div,然後和文本字段完全在JavaScript中,而不是嘗試使用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 }) 
    ) 
); 
0

我測試你的代碼,它會工作。但它是你的服務器代碼在這裏

<%= text_field_tag :reservation_type, "", class: "form-control m-b-10", :value => "'+extra_crew+'" %>

我認爲這是紅寶石,也不會在瀏覽器

+0

它是否是紅寶石沒關係,問題是我得到extra_crew作爲字符串而不是值可能是引號的cuz –

1

運行剛剛從文本字段中刪除「+ extra_crew +」,添加下面的js

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