在我当前的asp.net-mvc项目中,我的一个页面允许用户在发出更新多个值的发布请求后在下拉框中选择一个值。 为了确保回发的延迟不会让用户混淆选择另一个值(从而创建另一个帖子,创建另一个延迟等),我将select的disabled属性设置为true。 但是,禁用的输入不会提交给后期通话。
如何让用户在视觉上清楚地了解正在进行的工作,并且在不删除帖子输入的情况下选择新值是不可能的?
答案 0 :(得分:1)
是的,这也让我很烦恼。
基本上您需要做的是隐藏旧按钮并将其替换为禁用按钮,以使其看起来与用户相同。这样它仍然提交但不能双倍提交。
实际上我在Problem with disabling submit buttons on form submit找到了与此相似的内容。
答案 1 :(得分:1)
从你的回答中,我知道你已经在使用jQuery了。在这种情况下,为什么不获取选择框的值,禁用它,然后自己发布值?
Bonus:BlockUI是一个不错的jQuery插件,可以阻止用户界面。
答案 2 :(得分:0)
我在Cletus的帖子中找到的答案都不是我想要的 这就是我想出的。它不是100%可重复使用的,但它可以满足我的需求并随时改进/编辑。
$('#productMixSelectorForm').change(function() { $(this).ChangeSelection() });
jQuery.fn.ChangeSelection = function() {
var html = $('<div class="hidden">');
$(this).find('select, input').each(function() {
if ($(this).hasClass('hidden') == false) {
//Clone the original one into the hidden div
html.append($(this).clone());
//Disable the original (visible) one and make it's name unique again
$(this).attr("disabled", true);
var name = $(this).attr("name");
$(this).attr("name", name + "disabledDummy");
}
});
//Add the collection of clones to the form so they get submitted
$(this).append(html);
$(this).submit();
}