0

フォームのいくつかのフィールドを変更する JavaScript 関数があります。1 つは JavaScript 関数を呼び出すボタンで、もう 1 つはフォームを送信するボタンです。問題は、JavaScript関数を呼び出すボタンがフォームを送信することです。ボタンの種類を「ボタン」に変更しようとしましたが、ボタンにブレーキがかかり、機能しません。

 $("#button1").click(function () {

        //$("#usernameField").attr("value","");
        //$("#passwordField").attr("value","");


        if (authType == 0) {

            $("#usernameLabel").hide();
            $("#usernameField").hide().find('input:text').val("");

            $("#passwordLabel").hide();
            $("#passwordField").hide().find('input:text').val("");

            //$("#initialCatalogLabel").show();
            //$("#initialCatalogField").show();

            document.getElementById("button1").textContent = "Intergrated";
            $('#authType').val(1);


        }
        else {

            $("#usernameLabel").show();
            $("#usernameField").show();
            $("#passwordLabel").show();
            $("#passwordField").show();
            //$("#initialCatalogLabel").hide();
            //$("#initialCatalogField").hide();

            document.getElementById("button1").textContent = "SQL Authentication";
            $('#authType').val(0);
            //return false;

        }


<h2>Create</h2>


@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)


<fieldset>
    <legend>connection</legend>
   <div class="editor-label">
       Authentication Type
   </div>
   <div>
      <button id="button1" value="Intergrated" name="intergrated">SQL Authentication</button>
   </div>
   <br />
   <br />

    <div class="editor-label">
        Connection Name
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.conName)
        @Html.ValidationMessageFor(model => model.conName)
    </div>
    <div class="editor-label">
       Data Source
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.dataSource)
        @Html.ValidationMessageFor(model => model.dataSource)
    </div>
     <div class="editor-label" id="initialCatalogLabel">
       Initial Catalog
    </div>
    <div class="editor-field" id="initialCatalogField"> 
        @Html.EditorFor(model => model.initialCatalog) 
        @Html.ValidationMessageFor(model => model.initialCatalog)
    </div>

    <div class="editor-label" id = "usernameLabel">
       Username
    </div>
    <div class="editor-field" id="usernameField">
       @Html.EditorFor(model => model.username)
        @Html.ValidationMessageFor(model => model.username)
    </div>
    <div class="editor-label" id = "passwordLabel">
       Password
    </div>
    <div class="editor-field" id = "passwordField">
        @Html.EditorFor(model => model.password)
        @Html.ValidationMessageFor(model => model.password)
    </div>
    <div>
        <input type="hidden" name="authType" id="authType" value="@Model.authType" />
    </div>


   <p>
        <input type="submit" value="Create"/>
        @{
if (!string.IsNullOrEmpty(ViewBag.error))
{
                <div style="color:Red">
                   @ViewBag.error 
                </div>           
}
        }
    </p>

</fieldset>

}

4

2 に答える 2

0

ボタンではなくフォームをターゲットにする必要があります

e.preventDefault();jqueryを使用する場合は使用する必要はありません。

$('form').submit(function(e){
    return false;
});
于 2013-06-24T13:51:41.423 に答える
0
 <input type="button" id="button1" value="Integrated" />

試したボタンのタイプが間違っているのではないでしょうか?

于 2013-06-24T13:49:57.290 に答える