我在div上设置了一个jQuery BlockUI调用,其中包含“action”按钮。 Onclick,这个灰色的页面是为了防止双击等。 我们引入了一个新选项,它有一个选择框/ go按钮组合。
问题是,选择框更改会导致它进入等待屏幕,然后才能点击提交按钮。
我怎样才能将blockui定位为不选择?不幸的是,select name =“”区域是动态的,并且会随着它从cms构建而不断变化,因此我无法使用select [name =]目标。如有必要,我可以给它上课。 “其他”目前是我所拥有的。如果选择点击,我需要构建if top部分,什么也不做。
$('.actionbuttons').click(function() {
if($SELECT?)
alert('select');
}
else{
$.blockUI({ message: '<h1>thinking...</h1>' });
}
});
HTML:
<div class="actionbuttons">
<input type="submit" name="a" value="Save" onclick="return verify(this.form);">
<input type="submit" name="b" value="Close" onclick="return verify(this.form);">
<select name="c" size="1" onchange="changeit();">
<option selected="selected">Default</option>
<!-- dont do anything when clicking here -->
</select>
<input type="submit" name="d" value="Change C" onclick="return verify(this.form);">
</div>
并且不,仅仅为了记录,由于规范,onchange +提交1次移动是不可接受的。所以按钮需要在d上提交c。请记住,这些名称alphas是动态的,并且会在每个页面加载时发生变化,因此无法用于定位。
答案 0 :(得分:0)
如果您的目的是仅在点击input
type="submit"
元素时触发BlockUI覆盖,您可以更加具体地选择您的选择器。
<强> HTML 强>
<div class="actionbuttons">
<input type="submit" name="a" value="Save" />
<input type="submit" name="b" value="Close" />
<select name="c" size="1">
<option selected="selected">Default</option>
<option>Other</option>
<!-- dont do anything when clicking here -->
</select>
<input type="submit" name="d" value="Change C" />
</div>
<强> JS 强>
$('.actionbuttons input[type="submit"]').click(function (e) {
$.blockUI({
message: '<h1>thinking...</h1>'
});
verify( /* Pass in your form */ );
});
$('.actionbuttons select').change(function (e) {
changeit();
});
这将触发具有input
的任何type="submit"
元素的行为,这些元素是具有actionbuttons
类的容器的子元素(不一定是直接的)。然后你不需要在回调函数内部提出叠加层的任何逻辑。此外,您还可以选择直接将呼叫转移到verify
。