2012-10-19 1 views
2

하지만, 입력 필드에 태그를 추가 한 후 내가"jQuery Tag-it!"에서 태그를 가져올 수 없습니다. 내가 입력 필드에 태그를 만들기 위해</p> <blockquote> <p><a href="http://aehlke.github.com/tag-it/" rel="nofollow noreferrer">jQuery Tag-it!</a></p> </blockquote> <p>을 사용하고

HTML 코드는, lable가 입력 필드에서 값을 검색 할 :

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript" charset="utf-8"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js" type="text/javascript" charset="utf-8"></script> 
    <script src="Scripts/tag-it.js"></script> 
    <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/flick/jquery-ui.css"/> 
    <link href="Content/jquery.tagit.css" rel="stylesheet" /> 
    <script type="text/javascript"> 
     jQuery(document).ready(function() { 
      jQuery("#mytags").tagit({ 
       tagSource: function (request, response) { 
        $.ajax({ 
         type: "POST", 
         url: "WebForm1.aspx/GetKeyword", 
         data: "{'match': '" + request.term + "'}", 
         dataType: "json", 
         contentType: "application/json", 
         success: function (data) { 
          if (data.d != null) { 
           response($.map(data.d, function (item) { 
            return { 
             label: item.Name, 
             Value: item.Id 
            } 
           })); 
          } 
         } 
        }); 
       } 
      }); 
     }); 
     function myfunction() { 
      var tagStr = $("#mytags").tagit("tags") 
      alert("Got tags: " + tagStr); 
      $('#hiddenTags').val(tagStr); 
      return false; 
     } 
</script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <div> 
     TO : 
    </div> 
     <ul id="mytags"> 
    </div> 
     <asp:Button ID="Button1" runat="server" Text="Send" OnClick="Unnamed1_Click" OnClientClick="myfunction();"/> 
    </form> 
</body> 
</html> 

및 C# 코드는 다음과 같습니다

public partial class WebForm1 : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
     [WebMethod] 
     public static List<Info> GetKeyword(string match) 
     { 
      var qry = GetInfo().Distinct().Where(k => k.Name.ToLower().StartsWith(match.ToLower())); 
      return qry.ToList(); 
     } 

     public static IEnumerable<Info> GetInfo() 
     { 
      List<Info> list = new List<Info>(); 
      list.Add(new Info { Id = 1, Name = "Tom", Email = "[email protected]" }); 
      list.Add(new Info { Id = 2, Name = "Torex", Email = "[email protected]" }); 
      list.Add(new Info { Id = 3, Name = "Tresa", Email = "[email protected]" }); 
      list.Add(new Info { Id = 4, Name = "Morgan", Email = "[email protected]" }); 
      list.Add(new Info { Id = 5, Name = "Paris", Email = "[email protected]" }); 
      list.Add(new Info { Id = 6, Name = "Patrick", Email = "[email protected]" }); 
      return list; 
     } 

     protected void Unnamed1_Click(object sender, EventArgs e) 
     { 

     } 
    } 
    public class Info 
    { 
     public int Id { get; set; } 
     public string Name { get; set; } 
     public String Email { get; set; } 
    } 

그리고 난 태그 값을 얻기 위해 버튼을 클릭 할 때 : 내가 전송 버튼의 값을 얻기 위해 기다리고 있었다 무엇 enter image description here

은 "아이디"

+0

var tagStr = JSON.stringify ($ ("# mytags"). tagit ("assignedTags")); 이걸 사용하여 나는 값을 얻었지만 "Id"가 필요합니다 –

답변

0

시도와 모건, 톰, 패트릭 콘솔 로그에서 객체 내부의 내용을 확인합니다. 배열 일 경우 .each를 사용하십시오.

var tagStr = JSON.stringify($("#mytags").tagit("tags")); 

을 그리고 당신이 게시하고 사용하는 플러그인 링크의 소스를 확인 : 아약스 요청 success 이벤트 처리기에서

console.log("Got tags: " + tagStr); 
+0

경고 상자에있는 것과 같은 값을 가지고 있습니다 : [object Object] –

0

수정 value 속성 맞춤법과이를 사용합니다.

+0

이것을 사용하여 lable 값을 얻었지만, "Id"가 필요합니다 ** –

+0

@James –

+0

괜찮습니다. http://webspirited.com/tagit/?theme=simple-green#demos 여기에서 두 값을 받았습니다. –

0

는 코드를 수정 :

HTML 코드는 다음과 같습니다

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="DemoTagit._default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <link href="css/jquery-ui-base-1.8.20.css" rel="stylesheet" type="text/css" /> 
    <link href="css/tagit-dark-grey.css" rel="stylesheet" type="text/css" /> 
    <link href="css/demo.css" rel="stylesheet" type="text/css" /> 
    <script src="js/jquery.1.7.2.min.js" type="text/javascript"></script> 
    <script src="js/jquery-ui.1.8.20.min.js" type="text/javascript"></script> 
    <script src="js/tagit.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(function() { 

      jQuery("#demo2").tagit({ 
       tagSource: function (request, response) { 
        $.ajax({ 
         type: "POST", 
         url: "default.aspx/GetKeyword", 
         data: "{'match': '" + request.term + "'}", 
         dataType: "json", 
         contentType: "application/json", 
         success: function (data) { 
          if (data.d != null) { 
           response($.map(data.d, function (item) { 
            return { 
             label: item.Name, 
             value: item.Id 
            } 
           })); 
          } 
         } 
        }); 
       }, 
       sortable: true, 
       triggerKeys: ['enter', 'comma', 'tab'] 
      }); 

      $('#demo2GetTags').click(function() { 
       showTags($('#demo2').tagit('tags')) 
      }); 

      function showTags(tags) { 
       console.log(tags); 
       var string = "Tags (label : value)\r\n"; 
       string += "--------\r\n"; 
       for (var i in tags) 
        string += tags[i].label + " : " + tags[i].value + "\r\n"; 
       alert(string); 
      } 

      $('#demo2ResetTags').click(function() { 
       $('#demo2').tagit('reset') 
      }); 
     }); 
    </script> 
</head> 
<body> 
    <div class="box"> 
     <div class="note"> 
      You can manually specify tags in your markup by adding <em>list items</em> to the 
      unordered list! 
     </div> 
     <ul id="demo2" data-name="demo2"> 
     </ul> 
     <div class="buttons"> 
      <button id="demo2GetTags" value="Get Tags"> 
       Get Tags</button> 
      <button id="demo2ResetTags" value="Reset Tags"> 
       Reset Tags</button> 
     </div> 
    </div> 
</body> 
</html> 

코드 뒤에 다음과 같습니다

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web.Services; 

namespace DemoTagit 
{ 
    public class Info 
    { 
     public int Id { get; set; } 

     public string Name { get; set; } 

     public String Email { get; set; } 
    } 

    public partial class _default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
     } 

     [WebMethod] 
     public static List<Info> GetKeyword(string match) 
     { 
      var qry = GetInfo().Distinct().Where(k => k.Name.ToLower().StartsWith(match.ToLower())); 
      return qry.ToList(); 
     } 

     public static IEnumerable<Info> GetInfo() 
     { 
      List<Info> list = new List<Info>(); 
      list.Add(new Info { Id = 1, Name = "Tom", Email = "[email protected]" }); 
      list.Add(new Info { Id = 2, Name = "Torex", Email = "[email protected]" }); 
      list.Add(new Info { Id = 3, Name = "Tresa", Email = "[email protected]" }); 
      list.Add(new Info { Id = 4, Name = "Morgan", Email = "[email protected]" }); 
      list.Add(new Info { Id = 5, Name = "Paris", Email = "[email protected]" }); 
      list.Add(new Info { Id = 6, Name = "Patrick", Email = "[email protected]" }); 
      return list; 
     } 

    } 
} 

행운을 빕니다! HungNM