ASP.NET按钮单击调用BeginForm中的Javascript函数并停止表单提交

时间:2016-11-28 11:21:54

标签: javascript c# html asp.net

我遇到这种情况:

@using (Html.BeginForm("CreateNewApplication", "Token", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <label for="app-name" class="op-form op-label">Application:</label>
    @Html.TextBoxFor(a => a.appName, new { @placeholder = "Nome dell'applicazione", @class = "op-form op-text app-name" })<br />
    <label for="token" class="op-form op-label">Token:</label>
    <button id="generate-token" class="op-form" value="Genera Token">Generate Token</button>
    @Html.TextBoxFor(a => a.appToken, new { @placeholder = "Token", @id = "token", @class = "op -form op-text token" })<br />
    <input id="submit" type="submit" class="op-form op-submit" value="Submit" />
}

按钮调用此Javascript函数:

$('#generate-token').click(function () {
    var token = Math.random().toString(36).slice(2);
    $("#token").val(token);
});

问题是当单击按钮时,Javascript函数被正确调用,但在我的Token控制器中也称为CreateNewToken方法。虽然我只想在点击按钮上调用Javascript并在点击提交时调用方法控制器。 有可能吗?怎么样?

1 个答案:

答案 0 :(得分:0)

问题:   在一个&#34;形式&#34; element未提及类型时按钮的默认行为是&#34;提交&#34; 因此,只要您单击按钮,您的表单就会被提交。 解: 添加type =&#34;按钮&#34;属性到你的按钮元素。 &lt; button id =&#34; generate-token&#34;类型=&#34;按钮&#34;类=&#34;运算形式&#34; value =&#34; Genera Token&#34;&gt; Generate Token&lt; / button&gt; 来源http://www.w3schools.com/tags/tag_button.asp