目前我有一个aspx页面,定义为:
<%Using Html.BeginForm("SaveNotifications", "Notifications", FormMethod.Post, New With {.id = "NotificationForm"})%>
...
<tr>
<td colspan="3">
<input type="submit" id="SaveNotifications" name="SaveNotifications" value="Save" class="t-button" />
</td>
</tr>
</table>
</fieldset>
<%End Using %>
我想更改此设置,以便我的输入按钮触发javascript函数,以便我可以对表单进行一些复杂的验证,然后发送到控制器。
我将提交按钮更改为:
<input type="submit" id="SaveNotifications" name="SaveNotifications" value="Save" class="t-button" onclick="onSave(); return false;" />
onSave()方法会触发但不会回发给控制器。
控制器定义为:
<HttpPost()> _
<MultiButton(MatchFormKey:="SaveNotifications", MatchFormValue:="Save")> _
Function SaveNotifications(ByVal NotificationForm As FormCollection) As ActionResult
...
End Function
如何更改此内容以便javascript触发,运行我的验证然后点击此控制器操作?
由于
答案 0 :(得分:1)
将提交按钮更改为
<input type="submit" id="SaveNotifications" name="SaveNotifications" value="Save" class="t-button" onclick="return onSave();" />
然后在javascript onSave()函数中,根据验证返回true或false。
function onSave()
{
var isValid = true;
// ... do your validation ...
// ie:
// if (field1.value.length == 0)
// isValid = false;
// returning true will post the form. False will halt it.
return isValid;
}