在 ASP.NET MVC5 中使用文本框值添加更多日期时间值
Posted
技术标签:
【中文标题】在 ASP.NET MVC5 中使用文本框值添加更多日期时间值【英文标题】:add more datetime value using textbox value in ASP.NET MVC5 【发布时间】:2017-12-26 22:19:29 【问题描述】:我是 ASP.net MVC 的新手..所以我在这里遇到了困难:
我有 3 个元素:购买日期、保修期和过期日期。购买日期是一个带有 datePicker 类的 EditorFor,因此用户可以选择一个日期。 Warranty Date 是一个 EditorFor,用户在其中输入一个整数,例如 1、3、6、12(月)。并且 Expired Period 是具有“只读”类的 EditorFor,因此用户无法修改它。 我的问题是当用户在购买日期中选择日期并在保修日期中输入值时。如何使用公式自动将值添加到过期日期:过期日期 = 购买日期 + 保修期...请帮助我...谢谢大家..
【问题讨论】:
您需要 javascript 来响应客户端事件(并且您的ExpiredDate
不应该是表单控件 - 只是文本)
先生能不能说的详细点……非常感谢
SO 不是代码编写服务。做一些研究,然后展示你的尝试。
How to dynamically set bootstrap-datepicker's date value?的可能重复
【参考方案1】:
尝试将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 等来进行事件处理。还要记住这里没有进行错误检查/处理。
【讨论】:
【参考方案2】:为此,您需要在用户的网络浏览器上执行代码。 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 开发中被大量使用。
【讨论】:
以上是关于在 ASP.NET MVC5 中使用文本框值添加更多日期时间值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 asp.net 代码中获取引导文本框值并在存储过程中作为参数发送?
发生带有 Jquery 对话框的邮箱时,asp.net 文本框值为空
如何通过单击一个按钮保存 asp.net 文本框值并将该数据用于另一个按钮单击?