【问题标题】:How to Change the values of Text fields on the change of option box value如何在更改选项框值时更改文本字段的值
【发布时间】:2015-05-24 18:31:21
【问题描述】:

大家好,我正在开发一个使用 Spring MVC 和 Hibernate 框架的项目。我的问题是我正在处理表单,并且表单中的选项框正在工作。我想在更改选项框值时更改文本字段值。 我已经尝试过了:-

<script type="text/javascript" >
    $(document).ready(function(){
        $("#venderid").change(function(){
            $.getJSON("getVenderById.htm", {venderId: $(this).val()},
            function(vender){
                var data = JSON.parse(vender);
                var mail = data.email;
                $("#mail").html(mail);
            }
);
        });
    });

</script>

Vender.java

public class Vender {
   private Integer venderid;
     private String vendername;
     private String email;
     private String contact;
    //Setters and getters
}

控制器:-

@RequestMapping(value = "/getVenderById.htm")
    @ResponseBody
    public ModelAndView getVender(@RequestParam("venderId") int vId){
        ModelAndView mav = new ModelAndView();
        mav.addObject("vender", venderDAO.findById(vId));
        System.out.println("=========Ajax Calling============");
        return mav;
    }

一切正常,但如何根据供应商 id 填充电子邮件的文本框。回调函数是否有任何错误,或者如何利用 vender 对象的值。 Apache 服务器控制台窗口========Ajax Calling======= 打印上的另一件事意味着数据来自数据库。但是我如何使用它请帮忙。并提前感谢。

【问题讨论】:

  • 使用浏览器的网络检查器查看实际返回的内容 - 您需要 JSON,但您可能会得到不同的东西。使用调试器探测代码中的某些点,以验证问题开始出现的位置。在问题中包含所有相关信息。

标签: java jquery ajax spring hibernate


【解决方案1】:

在您期望供应商的 ajax 回调处理程序中,而您在控制器中发送 MAV。尝试在您的控制器中执行此操作。

@RequestMapping(value = "/getVenderById.htm")
    @ResponseBody
    public Vender getVender(@RequestParam("venderId") int vId){
        return venderDAO.findById(vId);
    }

【讨论】:

    【解决方案2】:

    我想添加到 minion 的答案中,您需要删除 .htm,因为您期望 JSON 作为响应。

    最好使用 ContentNegotiatingViewResolver 并将 JSON 响应设置为默认值。

    这是一个链接Content Negotiation using Views at spring.io

    【讨论】:

    • 我没听懂你。我会用你的建议
    • 你的意思是说,我应该从请求中删除.htm ??
    • 首先你需要使用@minion的答案。
    • 如果您之前没有这样做,您还需要在 Spring 中配置 Jackson 映射器(它将 Java 对象转换为 JSON 响应)。
    • 我在 jQuery 代码中使用正确的方法吗? ??我的意思是我的回调函数代码,请查看。
    【解决方案3】:

    请在回调中调试或控制台记录供应商值,如下所示:

    function(vender){
           console.log(vender); 
           var data = JSON.parse(vender);
           var mail = data.email;
           $("#mail").html(mail);
    }
    

    然后把值复制到这里

    【讨论】:

      猜你喜欢
      • 2015-01-27
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-05
      相关资源
      最近更新 更多