[英]How to set a model variable in a view to a value from within javascript inside a $(“form”).submit function
我正在尝试使用bootstrap-datetimepicker作为来自用户的GUI输入方法时遇到的时区问题。
我找不到一种方法,可以通过调整后的UTC时间获取FromDate值在模型中进行更新。
由于某种原因在此处无法格式化html代码,因此,我将尝试部分描述
<form action="Url.Action...new { id = Model.ListingCurrent.ID }) })" method="post" role="form">
<div class="input-group center-block" id="datetimepicker">
...
input type text id="FromDate"
input type text id="ToDate"
脚本:
<script type="text/javascript">
debugger;
$(function () {
$('#FromDate').datetimepicker({
stepping: 20
});
});
$(function () {
$('#ToDate').datetimepicker({
stepping: 20
});
});
$("form").submit(function () {
//var input = $('#FromDate').val();
$("#FromDate").val = getUTCDate(input);
});
function getUTCDate() {
var shite = moment($('#FromDate').val()).utc().format('YYYY-MM-DDTHH:mm:ssZZ');
return shite
}
更新:尝试过此代码结果使我回到输入文本框datetimepicker GUI
$("form").submit(function () {
var input = $('#FromDate').val();
var test1 = getUTCDate(input);
var test2 = $('#FromDate').val(test1);
});
这是Chrome F12工具中的调试
$("form").submit(function () {
var input = $('#FromDate').val(); input = "01/27/2016 1:20 AM"
var test1 = getUTCDate(input); test1 = "2016-01-27T06:20:00+0000"
var test2 = $('#FromDate').val(test1); test2 = [input#FromDate.form-control, context: document, selector: "#FromDate"]
});
更新:状态:在选择日期并单击提交后在浏览器中运行时,用户将被定向回到输入文本,而不是被提交给控制器。
$("form").submit(function () {
var input = $('#FromDate').val();
var test1 = getUTCDate(input);
$('#FromDate').val(test1);
//var test2 = $('#FromDate').val(test1);
});
更新:
$('#FromDate').text = utcTime;
.text在#FromDate中获取我需要的值,但未传递到我的控制器中。 传递给我的控制器的是视图模型中的此变量,它具有我在浏览器的“文本输入”中输入的值。
我认为这可能是一个jquery验证的事情。 这是我回到输入时在浏览器调试器中收到的警告
在HTMLFormElement.eval(在eval处评估(未知来源),: 1:2)在Object.InjectedScript._evaluateOn(:875:55)
问题是验证和日期格式的结合。
日期的格式不正确,无法在输入字段中进行验证
data-rule-required="true" data-rule-date="true"
每当我在变量中实际传递回日期时,这就会使验证例程生效,并使我回到表单。
这是一场拉屎秀,如果主持人删除了此内容,我不会怪他们。 我不确定其他人可以从中学到什么。
感谢大家抽出宝贵时间来帮助您。
克里斯
这样的事情应该起作用:
$(function(){
$('form').on('submit', function(e){
e.preventDefault(); //Prevent the form submitting with the old values
$('#FromDate').val(getUTCDate($('#FromDate').val()); //Change the form value
this.submit(); //Re-submit the form with the updated values
//No jQuery was used to prevent an infinite loop ;)
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.