首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >autocomplete未调用操作类

autocomplete未调用操作类
EN

Stack Overflow用户
提问于 2013-10-18 17:14:20
回答 1查看 450关注 0票数 0

当用户点击我正在使用jquery.autocomplete.js的文本box.For时,我想显示供应商名称。我在关注this tutorial

我的代码是jsp编写的。

代码语言:javascript
运行
复制
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
        <link rel="stylesheet" type="text/css" href="css/jquery.autocomplete.css" />
        <link rel="stylesheet" type="text/css" href="css/jquery-ui.css" />
        <script src="js/jquery.autocomplete.js"></script> 
        <script src="js/jquery-1.9.1.js"></script> 
        <script src="js/jquery-ui.js"></script> 

        <style>
            input {
                font-size: 120%;
            }
        </style>
    </head>
<body>
 <span class="label">Supplier Name</span>
    <span class="ib"> <input type="text" name="supplierId" id="supplierId"/></span>
  <script>
$("#supplierId").autocomplete("autoCompleteSupplier");
 </script>
</body>
</html>

在struts.xml中

代码语言:javascript
运行
复制
<action name="autoCompleteSupplier" class="iland.supplier.SupplierAction" method="autoComplete">
            <result name="success">/pages/supplier/suggestion.jsp</result>
            <result name="input">/pages/supplier/suggestion.jsp</result>
            <result name="login">/pages/login.jsp</result>
        </action>

在action类中

代码语言:javascript
运行
复制
public class SupplierAction extends ActionSupport {
 private String q;//getter and setter method

 public String autoComplete() {

            System.out.println("->SupplierAction autoComplete()");
            System.out.println(getQ());
            SupplierBusiness cb = new SupplierBusiness();
            Map data = cb.autoComplete(getQ());
                setSupplierList((ArrayList) data.get("supplierList"));
                return SUCCESS;
     }
   }

自动编译器应显示以下jsp页面

代码语言:javascript
运行
复制
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<s:iterator value="supplierList" var="suplst">
    <s:property value="supplierId"/>
    <s:property value="supplierName"/>
</s:iterator>

使用crome检查时,显示以下错误

代码语言:javascript
运行
复制
Uncaught SyntaxError: Unexpected end of input jquery.autocomplete.js:462
Uncaught Error: cannot call methods on autocomplete prior to initialization;
attempted to call method 'autoCompleteSupplier' jquery-1.9.1.js:507
EN

回答 1

Stack Overflow用户

发布于 2013-10-18 21:41:56

两件事:

  1. 将对autocomplete的调用放在支持DOM的函数中,例如,放在HTML.
  2. 使用source属性来设置操作。使用完整的URL,例如来自<s:url>标签。

代码语言:javascript
运行
复制
<script>
  $(function() {
    source: "<s:url action='autoCompleteSupplier'/>"
  });
</script>

请注意,此功能包装在Struts 2 jQuery plugin中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19445859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档