第一次提交按預期工作,但下一次完全發回。我正在使用jQuery.form插件,特別是.ajaxSubmit(options)
調用來提交表單。有幾個級別的包裝div,但我調試button.click綁定,我無法弄清楚爲什麼第二次,即使有相同的變量,它做了一個完整的帖子,我的部分視圖返回一個全新的頁。Ajax submit在第一次提交後發出完整的帖子
這裏,buttonid
和screenid
在兩個帖子上都是一樣的。我指出這一點,因爲他們是按照命名約定一樣<name>Outer
(包裝),<name>
(更新目標),以及<name>Form
(表單提交)計算
$('.formButton').click(function() {
var buttonid = $(this).attr('id');
var screenid = $('#' + buttonid).closest('div:not(.CSRForm)').attr('id').replace('Outer', '');
//appends a hidden element so I know which button was pressed when posted
$('#' + screenid + 'Form').append('<input type="hidden" name="submitButton" value="' + buttonid.replace(screenid, '') + '" />');
$('#' + screenid + 'Form').submit();
});
記.formButton
元素不內表單,這就是爲什麼我必須將提交事件綁定爲此。我的局部視圖只返回的形式,而不是按鈕(它們是動態的)
這裏是.ajaxSubmit:
$('.CSRForm').submit(function() {
var needsValidation = "yes";
if (needsValidation) {
$(this).ajaxSubmit({
target: '#AccountSetup',
replaceTarget: false,
success: StepCallWithForm //to check whether the response is valid for redirecting
});
return false;
}
});
和我的MVC的行動,如果是相關的:
public ActionResult AccountSetup(AccountSetupViewModel vm, string submitButton)
{
if (!ModelState.IsValid)
{
return PartialView(vm);
}
else
{
return Content(submitButton + ",AccountSetup");
}
}
編輯: 將此線立即插入我的$(function() {
之後:
$('#AccountSetup').ajaxForm();
我能夠阻止完整的回發。在Firebug中,現在我看到ajax回覆到/CSR/Home/CSR?
,這是所有這些東西的起點。就像表單失去了它的動作屬性。我的活動是不是交叉火力?
我很驚訝我是第一個+1。生活()岩石 – Ulises 2012-07-19 00:09:29