如何将视图中的模型变量设置为$(“form”).submit函数内javascript中的值

How to set a model variable in a view to a value from within javascript inside a $("form").submit function

本文关键字:form submit 函数 javascript 视图 模型 变量 设置      更新时间:2023-09-26

我正在尝试处理在使用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验证的事情。这是我在浏览器调试器中收到警告,当它将我带回输入时

at

HTMLFormElement.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 ;)
    });
});