繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM