1

私は私の人生のためにこれを解決することはできません。Drupal を使用しており、ユーザーが 1 つのオプションを選択したら送信したいフォームがあります。HTMLは

<form id="people-blockform" method="post" accept-charset="UTF-8" action="/people">
  <div>
    <div id="edit-filter-wrapper" class="form-item">
      <label for="edit-filter">Filter: </label>
      <select id="edit-filter" class="form-select" name="filter">
        <optgroup label="label1">
            <option value="all">Everyone</option>
            <option value="option1">option1</option>
            <option value="option2">option2</option>
        </optgroup>
        <optgroup label="Location">
            <option value="loc1">loc1</option>
            <option value="loc2">loc2</option>
        </optgroup>
      </select>
    </div>
    <input type="submit" class="form-submit" value="Filter" id="edit-submit" name="op">
    <input type="hidden" value="form-ccd2e26e54becdc164411311ff397989" id="form-ccd2e26e54becdc164411311ff397989" name="form_build_id">
    <input type="hidden" value="cb83794b5b00da15e546e12ec5499e64" id="edit-people-blockform-form-token" name="form_token">
    <input type="hidden" value="people_blockform" id="edit-people-blockform" name="form_id">
  </div>
</form>

私が使用しようとしているjQueryはこれです:

$(function () {
            $("#edit-filter").live("change keyup", function () {
                $("#people-blockform").submit();
            });
 });

どんな助けでも大歓迎です

4

2 に答える 2

1

これはうまくいくはずです。以下のコードを単独でファイルに入れると、正しく動作します。

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
  $("#edit-filter").live("change keyup", function () {
    $("#people-blockform").submit();
  });
});
</script>
</head>
<body>
<form id="people-blockform" method="post" accept-charset="UTF-8" action="test.php">
  <div>
    <div id="edit-filter-wrapper" class="form-item">
      <label for="edit-filter">Filter: </label>
      <select id="edit-filter" class="form-select" name="filter">
        <optgroup label="label1">
            <option value="all">Everyone</option>
            <option value="option1">option1</option>
            <option value="option2">option2</option>
        </optgroup>
        <optgroup label="Location">
            <option value="loc1">loc1</option>
            <option value="loc2">loc2</option>
        </optgroup>
      </select>
    </div>
    <input type="submit" class="form-submit" value="Filter" id="edit-submit" name="op">
    <input type="hidden" value="form-ccd2e26e54becdc164411311ff397989" id="form-ccd2e26e54becdc164411311ff397989" name="form_build_id">
    <input type="hidden" value="cb83794b5b00da15e546e12ec5499e64" id="edit-people-blockform-form-token" name="form_token">
    <input type="hidden" value="people_blockform" id="edit-people-blockform" name="form_id">
  </div>
</form>
</body>
</html>

これが単独で機能するのを見ると、物事を台無しにしているのは別の何かに違いありません。

  • ページには他にどのようなフォームがありますか?
  • このページには他にどのような Javascript/jQuery がありますか?
  • あなたが言及したjQueryが適切に含まれていると確信していますか?
  • 必要な .js ファイルを含めるために drupal_add_js() を使用していますか、それとも別の方法ですか?
于 2011-04-13T04:54:01.880 に答える
0

jQuery のバージョンを確認してください。現在取り組んでいる D6.16 インストールに 1.2.6 がありますが、.liveハンドラーは 1.3 (http://api.jquery.com/live/) まで追加されませんでした。したがって、コードは「TypeError: 式の結果は'$("#edit-field-servicegroup-value").live' [undefined]関数ではありません。」を返します。

于 2011-04-26T20:20:19.990 に答える