2011-04-13 90 views
1

我无法为我的生活工作。使用Drupal并有一个表单,我想在用户选择一个选项后提交。 HTML是提交表单(使用Drupal)

<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(); 
      }); 
}); 

任何帮助是极大的赞赏

+0

...应该工作。也许'keyup'搞砸了? – mattsven 2011-04-13 01:44:19

+0

nope-什么都不做。这让我感到困惑。我一定在 – jquerynoob 2011-04-13 02:16:19

回答

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被正确包含吗?
  • 您是否使用drupal_add_js()来包含必需的.js文件或其他方法?
0

检查您的jQuery版本。我现在正在使用D6.16安装1.2.6,但是直到1.3(http://api.jquery.com/live/)才加入.live处理程序。所以你的代码返回“TypeError:表达式的结果'$("#edit-field-servicegroup-value").live' [undefined]不是函数。”

+0

的某个地方出现了一个愚蠢的错误 - 谢谢大家。我有错误的jQuery版本 - 更改为1.3,一切正常。对不起,麻烦了! – jquerynoob 2011-04-27 04:10:37