使用jQuery避免表单操作捕获错误

时间:2013-08-12 08:04:12

标签: jquery thymeleaf

我想使用不需要th:action形式的jQuery和重定向将数据标准名称保存到数据库。

我试过这个但是发现了错误。

如果您知道此错误的原因,请在此处解释。

Thymeleaf代码

<form action="#"  >
<table>
<h1>Create Standard</h1>
<tr>
<td>Standard Name:</td>
<td><input type="text" th:value="${standardName}" placeholder="Enter Standard Name" required="required"id="std" name="stdName"/></td></tr>
<td><input type="submit"  class="btn btn-primary" value="Create" id="savebutton" name="save" /></td>
</table>
</form>

我正在使用jQuery,因为重定向和表单操作在这里不起作用。这是我的要求,所以我使用jQuery。

jquery的

<script type="text/javascript" th:inline="javascript" charset="utf-8"
    src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript" th:inline="javascript" charset="utf-8"
    src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

<script>
$(document).ready(function(){
  $("#savebutton").click(function(){

    $.ajax({
        type : 'POST',
        url : "/saveStandards.html ",
            data : ({
                std : standardName //this standardName not defined that is the error 
            })

    });

  });
});
</script>

控制器

  @RequestMapping(value = Array("/saveStandards.html"))
  @ResponseBody
  def saveStandards(@RequestParam std:String) {
  var standard:Standard=new Standard
    standard.setCreatedDate(new java.sql.Date(new java.util.Date().getTime))
    standardService.addStandard(standard)
    println("*****inside controller*****"+std+"****last***")//here std is not printing because of the value not catch @ here

}

错误捕获:

未捕获的ReferenceError:未定义standardName

1 个答案:

答案 0 :(得分:4)

这是因为您没有使用名称standardName声明的变量,您可以修复如下

$(document).ready(function(){
    $("#savebutton").click(function(){

        $.ajax({
            type : 'POST',
            url : "/learnware/saveStandards.html ",
            data : ({
                std : $('#std').val()
            })

        });

    });
});