如何将视图中的模型变量设置为$(“form”).submit函数内javascript中的值
本文关键字:form submit 函数 javascript 视图 模型 变量 设置 | 更新日期: 2023-09-27 18:32:13
我正在尝试处理在使用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
}
更新:尝试了此代码结果将我带回我的输入文本框日期时间选择器 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验证的事情。这是我在浏览器调试器中收到警告,当它将我带回输入时
atHTMLFormElement.eval (eval at evaluate (未知来源), :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 ;)
});
});