我有一個模式彈出內部的表格,用戶可在文本框中輸入文字,然後點擊加號按鈕,動態地增加它們在鍵入的文本到DIV這樣他們就可以繼續再添加一個。問題回傳動態字符串數組
<div class="form-group">
<label class="control-label col-sm-4" for="prefix">
Cast <span style="color:red">*</span>
</label>
<div class="col-sm-5">
<input type="text" class="form-control col-sm-5" id="Cast" />
</div>
<div class="col-sm-1">
<button type="button" id="btnNewCast" class="btn btn-default">+</button>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-4" for="prefix"></label>
<div class="col-sm-6" id="newCast">
</div>
</div>
如這裏所示:
的NEWCAST是我顯示由jquery的輸入的值。
當他們點擊btnNewCast下面的腳本被稱爲
$("#btnNewCast").click(function() {
$("#newCast").append("<span class='label label-success label-as-badge custom-line-height' id='cast[]'><i class='glyphicon glyphicon-tag'></i> "+ $("#Cast").val() + "</span><br/>");
$("#Cast").val('');
});
,看起來像這樣:
的HTML如下:
<span id="cast[]" class="label label-success label-as-badge custom-line-height">
<i class="glyphicon glyphicon-tag"></i>
They Appear Here
</span>
當他們按提交對我傳回值的形式,如圖她e:
$("#btnAddMovie").click(function() {
$.ajax({
url: '/Movies/Add',
//data: $('NewMovie').serialize(),
data: { "Title": $("#Title").val(), "Classification": $("#Classification").val(), "Rating": $("#Rating").val(), "ReleaseDate": $("#ReleaseDate").val(), "Cast": $("#Cast").val() },
cache: false,
type: "POST",
success: function (result) {
if (result.success) {
}
},
error: function (result) {
alert("Error");
}
});
});
其中映射到我的模型,並正常工作。
控制器:
[HttpPost]
public ActionResult Add(Movie model)
{
return View();
}
我的模型聲明如下:
public int MovieId { get; set; }
public int Rating { get; set; }
public int ReleaseDate { get; set; }
public string Title { get; set; }
public string Classification { get; set; }
public string Genre { get; set; }
public string[] Cast { get; set; }
我的問題是,你可以看到演員是一個字符串數組,用戶輸入的項目(這是在圖片)我想,當他們張貼到他們都映射到鑄造字符串數組中。
我已經試過
"Cast": $("#cast[]").val()
但發佈時,我得到一個jQuery錯誤,無法識別的表達
我不能讓它正確地映射..
** **更新完成post method
$("#btnAddMovie").click(function() {
var stringArr = $('span[data-id="cast[]"]').map(function() {
return $(this).text().trim();
});
$.ajax({
url: '/Movies/Add',
//data: $('NewMovie').serialize(),
data: { "Title": $("#Title").val(), "Classification": $("#Classification").val(), "Rating": $("#Rating").val(), "ReleaseDate": $("#ReleaseDate").val(), "Cast": stringArr },
cache: false,
type: "POST",
success: function (result) {
if (result.success) {
}
},
error: function (result) {
alert("Error");
}
});
});
@ShaunakD我有一個輸入稱爲投放的是,他們鍵入名稱,但用戶輸入的文本被使用jQuery動態添加到視圖我已經證明了。我需要將每個輸入的名稱傳回給控制器。所以我需要一些如何映射他們已經輸入到鑄造字符串數組的名稱 –
是的,當你使用'.val()'作爲'val()'時,我很困惑'只適用於輸入,並且沒有任何輸入在所示的代碼中。查看下面的答案,檢查它是否有效。 –