问题描述
|
我想做的是,我有一个下拉框,让我的管理员用户可以将图片评为G级和X级。一旦他们选择了此选项,我希望提交表格。
我以为它就像发送表单ID一样容易,但似乎并非如此。
这是用户唯一需要做的形式。
html表单看起来像这样
<form id=\"photo1\">
<input id=\"1\" name=\"pictureid\" hidden />
<select name=\"phototype\">
<option value=\"G\">G Rated</option>
<option value=\"X\">X Rated</option>
</select>
</form>
解决方法
如果要在触发onchange事件时提交表单,请使用以下代码:
$(\'#photo1 select\').change(function () {
$(\"#photo1\").submit();
});
,$(\'#photo1 select\').change(function() {
$(\'#photo1\').submit();
return true;
});
,这样就足够了
$(\'select[name=\"phototype\"]\').change(function(){
this.form.submit();
});
它会自动找到相对形式,因此也可以应用于多种形式。
或者,如果由于动态加载表单而需要.live()
,请使用
$(\'select[name=\"phototype\"]\').live(\'change\',function(){
this.form.submit();
});
,当前,您的代码存在的问题是您的用户无法选择“ G级”,因为默认情况下已选中该代码。您应该添加一个空白选项。您可能还需要为隐藏元素设置一个值:
<form id=\"photo1\">
<input id=\"1\" name=\"pictureid\" value=\"1\" hidden />
<select name=\"phototype\" id=\"phototype\">
<option value=\"\"></option>
<option value=\"G\">G Rated</option>
<option value=\"X\">X Rated</option>
</select>
</form>
然后,您可以使用以下jQuery:
$(\'#phototype\').change(function() {
if (this.value) {
$(this).closest(\'form\').submit();
}
});
jsFiddle
,工作演示
$(\'select\').change(function(){
$(this).closest(\'form\').submit();
});
$(\'select\').live(\'change\',function(){
$(this).closest(\'form\').submit();
});