我的视图中有三个按钮。所以现在我想要两个按钮回发,第三个按钮执行一些jquery。这该怎么做。就像如何使第三个按钮不回发并执行一些jquery操作。 感谢
答案 0 :(得分:3)
你可以这样做
<form id="myForm">
<%-- form data inputs here ---%>
<button id="Postback">Postback</button>
<button id="JavaScript">JavaScript</button>
</form>
并在javascript中
<script type="text/javascript">
$("#Postback").click(function() {
var form = $("form#myForm");
form.attr("action", "@Url.Action("action","MyController")");
form.submit();
});
$("#JavaScript").click(function() {
Do your javascript something.
});
</script>
答案 1 :(得分:1)
在HTML格式中,代码button
具有attibute type
:
要回发数据(提交表单),您必须将type
设置为submit
(这是默认值,因此您可以完全删除type
属性。
要执行某些JavaScript操作,您必须将type
设置为button
。
在两个不同的提交对象中使用相同的name
和不同的values
:
@using (Html.BeginForm("Login", "Home")
{
<label for="login">Login:</label>
@Html.TextBox("login", Model.Login)
<label for="password">Password:</label>
@Html.Password("password", "")
<button type="submit" name="what" value="login">Log in</button>
<button type="submit" name="what" value="register">Register</button>
<button type="button" id="facebook">Facebook authentication</button>
}
<script>
$(function() {
// Perform jquery action.
$('#facebook').click(...);
});
</script>
在控制器中:
public ActionResult Login(string login, string password, string what)
{
if (what == "login")
. . .
else if (what == "register")
return RedirectToAction("Register", "Home");
}