在ASP.NET MVC5中使用文本框值添加更多日期时间值

时间:2017-07-21 02:12:25

标签: c# asp.net-mvc

我是ASP.net MVC中的新手。所以我在这里遇到困难:

enter image description here

我有3个要素:购买日期,保修期和过期日期。购买日期是带有datePicker类的EditorFor,因此用户可以选择日期。保修日期是一个EditorFor,用户可以在其中放置一个int号,例如1,3,6,12(Months)。和过期时间是一个编辑器用" readonly"因此用户无法对此进行修改。 我的问题是当用户选择购买日期中的日期并在保修日期输入值时。如何使用公式自动将值添加到过期日期:过期日期=购买日期+保修期...请帮助我...谢谢大家..

2 个答案:

答案 0 :(得分:0)

尝试使用购买日期保修期连接change个事件,如:

var pd=document.getElementById("<Id of Purchase Date>");
pd.onchange=function(){
    calculateExpiry();
};
var wp=document.getElementById("<Id of Warranty>");
wp.onchange=function(){
    calculateExpiry();
};

var we=document.getElementById("<Id of Warranty Expiry>");
function calculateExpiry(){
    var d=pd.value;
    if(d===""){
    return;
    }
    var w=wp.value;
    if(w===""){
    return;
    }
    var a=d.split("-");//suppose your date is displayed as yyyy-mm-dd (2017-07-21)
    var m=+a[1];
    m+= +w;
    var y=0;
    if(m>12){
        y+=1;
        m-=12;
    }

    we.value=+a[0]+y + "-" + a[1]-1 +"-" + +a[2]);
}

这非常粗糙,非常冗长。您可以尝试jQuery等来进行事件处理。还记得在这里没有进行错误检查/处理。

答案 1 :(得分:0)

为此,您需要在用户的Web浏览器上执行代码。由于在生成页面时执行了所有代码,因此您无法使用ASP.NET。将页面发送给用户后,ASP.NET无法执行任何操作来更改页面。

要在用户的网络浏览器上执行代码,您需要使用Javascript

要在网页中加入Javascript,只需使用<script>代码并将代码放入其中。

<script>
// Put the javascript code here
</script>

脚本标记通常在结束</body>标记之前。所以它会做这样的事情:

<body>
    <!-- Content of the page here -->

    <script>
        // Put the javascript code here
    </script>

</body>

编辑:我刚看到@TheVillageIdiot写了代码来做你想做的事。我强烈建议您仍然学习一点Javascript,因为它在Web开发中经常使用。

相关问题