1

我有一个由 spring 处理的“创建帐户”表单。我正在使用 jquery 来自动更新一些字段。

    <script type="text/javascript">
    $().ready(

             function() {

                 $("#item1").keyup(function() {
                     var text= (this).value;
                     //modify text
                     $("#item4").val(text);

                    });


             });
    </script>

     <form:form action="${form_url}" method="POST" modelAttribute="object" enctype="${enctype}">
     <label for="Item1">Item1:</label>
     <input type="text" id="item1" name="item_1"/>
     <br></br>
     <br></br>
     <label for="Item2">Item2:</label>
     <input type="text" id="item2" name="item_2"/>
     <br></br>
     <br></br>
     <label for="Item3">Item3:</label>
     <input type="text" id="item3" name="item_3"/>
     <br></br>
     <br></br>
     <label for="Item4">Item4:</label>
     <input type="text" id="item4" name="item_4"/>
    </form:create>

<input id="proceed" type="submit" value="Save"/>

按下提交按钮后,我需要确保第一个字段“item1”不为空。我还没有找到使用弹簧形式的解决方案。提前致谢!

4

1 回答 1

1

有许多方法可以实现这种验证。建议你同时做客户端和服务器端。

对于客户端,您可以简单地为提交按钮创建一个点击监听器

$('.submitbutton').click(function(e) {
  e.preventDefault();
  if($('#item1').val().trim() != '') $('.myform').submit()
  else { $('.item1_error').show();
}

或者(甚至更好)使用 3rd 方验证库

对于服务器端,您可以使用 hibernate-validator 并向@NotEmpty表单 bean 添加注释

public class MyForm {

  @NotEmpty private String item1;

  // ...

}

然后在您的控制器处理程序方法上,只需用@Valid. 任何错误都可以通过 BindingResult 对象检查

@RequestMapping(..)
public String myhandler(@Valid @ModelAttribute("object") MyForm myForm, BindingResult binding) {
  if(binding.hasErrors()) {
    // ...
  }
}
于 2013-07-15T22:56:41.227 回答