1

オートコンプリート プラグインを使用して、外部の json リストから大学を選択しています。今では、学生が大学を選択すると、後で学部を選択する必要があります。

例えば、

Columbia University: communityid = 11 : parentID = 0
Architecture, Planning & Preservation: communityid = 14 : parentid = 11

TypeError: $(...).data(...) is undefinedエラーが発生する理由がわかりません。

<form action="content/signup/index.cs.asp?Process=AddMember" method="post" class="signup-form">
  <fieldset>
    <p>
      <input type="text" name="COMMUNITY" size="55" value="" title="<%=lngUniversity%>" />
      <div id="autobox"></div>
    </p>
    <p>
      <input type="text" name="SCHOOL" size="55" value="" title="<%=lngSchool%>" />
    </p>
    <p>
      <input type="hidden" name="COMMUNITYEMAIL" value="">
      <input type="hidden" name="COMMUNITYID" value="">
      <input type="hidden" name="x" value="p">
      <input type="submit" name="#" value="<%=lngSubmit%>" class="btn btn-signup">
    </p>
  </fieldset>
</form>

JS

$(".signup-form input[name='COMMUNITY']").autocomplete({
  source: function (request, response) {
    $.ajax({
      url: "/content/signup/index.cs.asp?Process=CheckEmail&PARENTID=0&COMMUNITY=" + request.term,
      dataType: "json",
      success: function (data) {
        response($.map(data.CheckEmail, function (item) {
          return {
            label: item.Name,
            value: item.Name,
            CommunityID: item.CommunityID
          }
        }));
      }
    });
  }
});
$(".signup-form input[name='SCHOOL']").autocomplete({
  source: function (request, response) {
    $.ajax({
      url: "/content/signup/index.cs.asp?Process=Check&PARENTID=" + $(".signup-form input[name='COMMUNITY']").data(CommunityID).selectedItem.UniversityId + "&COMMUNITY=" + request.term,
      dataType: "json",
      success: function (data) {
        response($.map(data.CheckEmail, function (item) {
          return {
            label: item.Name,
            value: item.Name,
            emailURL: item.emailURL,
            SchoolID: item.CommunityID
          }
        }));
      }
    });
  },
  minLength: 1,
  select: function (event, ui) {
    $(".signup-form input[name='COMMUNITYEMAIL']").val(ui.item.emailURL);
    $(".signup-form input[name='COMMUNITYID']").val(ui.item.CommunityID);
  },
  open: function () {
    $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
  },
  close: function () {
    $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
  },
  appendTo: '#autobox'
});
4

1 に答える 1

0

JSONデータ形式に問題がないことを確認する前に、関連するjavascriptファイル ( jquery-x.x.x) が適切に参照されているかどうか (1 回だけ) を確認してください。この問題は、関連ファイルが参照されていないか、複数回参照されている場合に発生する可能性があります。お役に立てれば...

于 2016-01-26T22:32:13.213 に答える