gpt4 book ai didi

javascript - 使用 javascript asp.net 将文本框中输入的日期更改为另一种格式

转载 作者:行者123 更新时间:2023-11-28 02:39:38 24 4
gpt4 key购买 nike

我整天都在查看论坛和教程,但我似乎无法弄清楚这一点。我是 100% 的 ASP.NET 和网页设计(HTML 等)新手;我已经使用 winforms 和 vb.net 几个月了。

我在页面上有一个文本框(ID = DOBTextbox),我正在尝试实现javascript代码,当文本框文本长度至少为6个字符(或者更好,可以计算为日期)时,文本更改为特定的日期格式(最好是 MMM dd、yyyy,但我愿意使用内置的 javascript 日期转换器函数来使其接近)。我想使用 javascript,因为我希望它是客户端驱动的。

按照这些思路的许多示例,我知道我需要在源文件中创建一个函数,并且可以向代码隐藏文件添加一个属性。

<script type="text/javascript">
function reformatDate(inputDate) {
var outputDate = inputDate.toString();
return outputDate;
}
</script>

在我的代码隐藏中:

DOBTextBox.Attributes.Add("onblur", "reformatDate('" & DOBTextBox.Text & "')")

但是,当我离开文本框时,什么也没有发生。

注意:我使用“onblur”是因为我一直在尝试。我的第一个偏好是当用户更改文本框的文本时触发的事件。另外,我在函数中使用了“.tostring()”,因为我收到一条错误,指出 todatestring() 无法识别(我认为 todatestring() 输出更接近我想要的格式)。

预先感谢您的帮助!!!

最佳答案

您可能想要这个:

DOBTextBox.Attributes.Add("onblur", "reformatDate(this.value);")

通过您的代码,您尝试将 ASP.NET 代码和 JavaScript 结合起来。 ASP.NET 在发送到浏览器时是静态的,而 javascript 是动态的。当您使用代码时,您会在 ASP.NET 代码运行到属性中时对文本框的值进行硬编码。因此 HTML 可能会呈现如下形式:

<input type="text" id="whatever" name="whatever" value="10/24/2001" onblur="reformatDate('10/24/2001')" />

通过我的更改,它将使 javascript 在模糊时获取文本框的值并将其传递给 reformatDate 函数。所以它会被渲染成这样:

<input type="text" id="whatever" name="whatever" value="10/24/2001" onblur="reformatDate(this.value)" />

您可能想要使用 onchange,而不是 onblur,以便该函数仅在文本框的值更改时触发,而不仅仅是在文本框模糊时触发。

更新:

ASP.NET 代码需要更改为:

DOBTextBox.Attributes.Add("onblur", "this.value = reformatDate(this.value);")

以便将文本框的值重新设置为转换后的值。

更新2:

尝试将您的函数更改为:

function reformatDate(inputDate) {
if (inputDate.length > 5) { // Least amount of characters for possible date
var outputDate = new Date(inputDate); // Convert input to date object
if (!isNaN(outputDate.getTime())) { // Makes sure the date is valid
return outputDate.toDateString(); // Return formatted date only if valid
}
}
return inputDate; // Return original value if invalid date
}

关于javascript - 使用 javascript asp.net 将文本框中输入的日期更改为另一种格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12888784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com