V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
hjpotter
V2EX  ›  JavaScript

想咨询一个 springMVC 的问题。<form:input> 这个标签的 path 可以通过 js 取值或设值吗?

  •  
  •   hjpotter · 2018-11-15 23:55:09 +08:00 · 4406 次点击
    这是一个创建于 2224 天前的主题,其中的信息可能已经有所发展或是发生改变。
    刚接触一个以前的项目,之前里面的日期输入用的都是<form:input>标签
    类似

    <form:input path="date"/>

    <form:errors path="date"/>

    这种,前台输入一个日期,后台判断是不是 yyyy-MM-dd 格式,不是就报 error message。

    现在领导要我们改成-各国客户通过 jquery 的 Datepicker 日历点击输入日期,然后根据各国的习惯自动转换格式,比如越南转化成 dd MM yy,显示在输入框里就是 16 11 2018。
    转换后问题就来了,后台的判断日期格式 check 要全部根据当前语言分成不同 patten,而且由于项目局限不能在 form 里进行,工程量实在有些庞大。
    我就在想能不能在 form 提交的那一刻,用 js 取出 path 里的值,然后手动将其转成 yyyy-mm-dd 格式再提交。
    普通的 input 可以设 id 之类的用来取值,但 form:input 应该怎么操作呢?有可能的话还是想少修改之前的代码。卡了一晚上了,不知道大家有没有时间帮着指点一二,多谢!
    11 条回复    2018-11-16 11:37:59 +08:00
    night98
        1
    night98  
       2018-11-16 02:55:47 +08:00 via Android   ❤️ 1
    显示的和实际传值区分一下就行了。。
    hjpotter
        2
    hjpotter  
    OP
       2018-11-16 08:57:15 +08:00
    @night98 您是指在 Datepicker 日历点击输入日期,格式转化之前的默认值存到 hidden 里面,最后 error check 的时候提交这个?
    wleexi
        3
    wleexi  
       2018-11-16 09:08:02 +08:00
    后台用国际化方式做成当地的 patten 不行?
    Antihank
        4
    Antihank  
       2018-11-16 09:22:53 +08:00
    Datepicker 肯定有 format 参数吧,controller 在转到 jsp 页面的时候传一个 format 的参数,然后在 jsp 页面放到 Datepicker 的参数里,比如 model.addAttribute("dateFormat","yyyy-MM-dd"),
    然后页面 datePicker:{dateFmt:'${dateFormat}'}。
    Antihank
        5
    Antihank  
       2018-11-16 09:23:48 +08:00
    那个 format 就由后台通过国际化来选择咯。
    Antihank
        6
    Antihank  
       2018-11-16 09:25:59 +08:00
    oh,又没仔细看问题。。。忽略我吧。。。
    TomatoYuyuko
        7
    TomatoYuyuko  
       2018-11-16 09:30:54 +08:00
    return false 阻断默认提交动作,onclick 一个方法去抓值,处理完了 submit()执行表单提交。
    form:input 的话你可以活用选择器抓啊,比如加个不占地方的 label 放边上,抓 next。方法很多
    hjpotter
        8
    hjpotter  
    OP
       2018-11-16 09:48:53 +08:00
    @wleexi 那个需要改非常多的地方,有可能的话还是想在前台提前处理。
    hjpotter
        9
    hjpotter  
    OP
       2018-11-16 09:49:14 +08:00
    @TomatoYuyuko 是个好办法,感谢!
    519718366
        10
    519718366  
       2018-11-16 11:24:10 +08:00
    form:input 也可以像普通的 input 一样加 id 进行取值的
    hjpotter
        11
    hjpotter  
    OP
       2018-11-16 11:37:59 +08:00
    发现了,<form:input> 这个标签会在编译成 html 的时候自动生成一个 id,比如 path 是 fromDate,id 就是 fromDate,用这个取值就行。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1044 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:47 · PVG 03:47 · LAX 11:47 · JFK 14:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.