我正在尝试从我的timepicker中获取所选时间,然后将其指定为@ Html.TextBox()值attritibute中的值。我尝试使用这行代码:@(timeValue)= timepicker('getTime')...但它不会在timeValue变量中存储值。然后我尝试了timeValue = timepicker('getTime')并获得有关未定义datepicker的错误消息。下面的代码工作正常,除了我需要从我的timepicker获取所选值的部分。
如何从我的timepicker中获取所选时间并将其分配给TextBox值? 感谢您对此提供的任何帮助。
string date = "date" + course.Index.ToString();
string time = "time" + course.Index.ToString();
string timeValue = "";
<script type="text/javascript">
$(function () {
$('input[name= @(date) ]').datepicker();
$('input[name=@(time)]').timepicker({});
@(timeValue) = timepicker('getTime');
});
</script>
string day = DateTime.Now.ToShortDateString();
@Html.TextBox(name: time, value: timeValue, htmlAttributes: new { id = time, @class = "TextBoxCss" })
答案 0 :(得分:0)
您无法将javascript分配给razor变量。而是使用jquery来分配值。
但首先,我认为你没有正确使用@ Html.TextBox。
尝试,
@Html.TextBox("time", null, new {id = "time", @class = "TextBoxCss"})
然后是jquery,
var timeValue = timepicker('getTime');
$("#time").val(timeValue);
<强>编辑:强>
使用jquery,ajax表单序列化。 E.g。
$("#sendTimeButton").on("click", function () { // or use on form submit
$.ajax({
type: "POST", // or GET
url: "@Url.Action("Edit", "ControllerName")",
data: $("#myForm").serialize(), //you can use json also JSON.Stringtify
cache: false,
success: function () {
},
error: function () {
console.log("error");
}
});
});
您也可以使用数组:
var timeArray = new Array();
$(".TextBoxCss").each(function(){
timeArray.push($(this).val()) // loop through all text boxes with class "TextBoxCss"
});
然后数据部分是这样的:
data: {times: timeArray}, // "times" refer to the argument in your controller
然后在你的控制器中:
public ActionResult Edit(int id, string[] times)
答案 1 :(得分:0)
所以我保持代码非常像我原来的帖子......
string date = "date" + course.Index.ToString();
string time = "time" + course.Index.ToString();
<script type="text/javascript">
$(function () {
$('input[name= @(date) ]').datepicker();
$('input[name=@(time)]').timepicker({});
});
</script>
string day = DateTime.Now.ToShortDateString();
@Html.TextBox(name: time, value: "Set Time", htmlAttributes: new { id = time, @class = "TextBoxCss" })
@Html.TextBox(name: date, value: day, htmlAttributes: new { id = date, @class = "TextBoxCss" })
然后在我的控制器中我这样做,我可以创建一个循环来迭代列表中的所有texbox:
[HttpPost]
public ActionResult Edit(int id, FormCollection formCollection)
{
String theTimes = Convert.ToString(formCollection["time0"]);
}