如何修改表单提交给WhatsApp API的日期输出格式为DD/MM/YYYY
问题原因
HTML5 原生type="date"类型输入框的value属性返回值固定为YYYY-MM-DD的ISO标准格式,并非是格式被自动转换,是默认读取到的原始值就是这个格式。
解决方法
你可以新增一个简单的日期格式转换函数,把读取到的ISO格式日期重组为你需要的DD/MM/YYYY格式即可,修改后的JavaScript代码如下:
function gotowhatsapp() { // 日期格式转换函数:把YYYY-MM-DD转为DD/MM/YYYY function formatToLocalDate(isoDateStr) { const [year, month, day] = isoDateStr.split('-'); return `${day}/${month}/${year}`; } var name = document.getElementById("name").value; var phone = document.getElementById("phone").value; var email = document.getElementById("email").value; var fromRaw = document.getElementById("from").value; var toRaw = document.getElementById("to").value; var service = document.getElementById("service").value; // 转换日期格式后再拼接链接 var from = formatToLocalDate(fromRaw); var to = formatToLocalDate(toRaw); var url = "https://wa.me/1999999999?text=" + "Name: " + name + "%0a" + "%0a" + "Telefone: " + phone + "%0a" + "%0a" + "E-mail: " + email + "%0a" + "%0a" + "Entrada: " + from + "%0a" + "%0a" + "Saída: " + to + "%0a" + "%0a" + "Mensagem: " + "%0a" + service; window.open(url, '_blank').focus(); // 阻止按钮默认的表单提交行为,避免页面刷新导致跳转失败 return false; }
额外优化建议
- 你代码里的日期输入框
max属性写为2050-13-13是无效值,月份范围只能是1-12,建议修改为2050-12-31避免出现兼容问题 - 也可以直接把WhatsApp按钮的
type="submit"改为type="button",从根源上避免触发表单默认提交逻辑
内容的提问来源于stack exchange,提问作者Amanda Pinto
相关产品推荐
相关产品推荐

