1

これは、別の質問に似ていますが、フォームは送信されません。

基本的にここで達成しようとしているのは、ユーザーが「送信」ボタンをクリックすると、ユーザーが送信ボタンを数回クリックするのを避けるために、ページがリダイレクトされるまでボタンが無効になることです。

ユーザーがリダイレクトされるページには、フォームからの情報は表示されません。無効化機能と有効化機能を導入する前は、これは正しく機能していました。

提供されたコードは btn を無効にし、テキストを「送信中」に変更しますが、概要ページにリダイレクトせず、タブを介して概要ページに移動しても情報がありません。どんな助けでも大歓迎です...

フォームコード........

  <div class="portlet-body form">
        <!-- BEGIN FORM-->
        @using (Html.BeginForm("RequestAppointment", "Appointment", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", id= "apptReqForm" }))
        {


            @Html.AntiForgeryToken()
            @Html.ValidationSummary(false, string.Empty, new { @class = "alert alert-error" })

            <div class="control-group">
                <label class="control-label">Healthcare Professional</label>
                <div class="controls">         
                    @Html.DropDownListFor(m => m.RequestedUserID, Model.Hcps, string.Empty)

                </div>

            </div>
            <div class="control-group">
                <label class="control-label">@Html.LabelFor(m => m.RequestedDateTime)</label>
                <div class="controls">
                    <div class="input-append" id="ui_date_picker_trigger">
                        @Html.EditorFor(m => m.RequestedDateTime)
                        <span class="add-on"><i class="icon-calendar"></i></span>
                    </div>
                </div>
            </div>

            <div class="control-group">
                <label class="control-label">@Html.LabelFor(m => m.SelectedTime, "Time")</label>
                <div class="controls">
                    <div id="timeSlotID" data-request-url="@Url.Action("LoadTimeslots")">
                        <select id="SelectedTime" name="SelectedTime"></select>
                    </div>
                </div>
            </div>

            <div class="control-group">
                <label class="control-label">@Html.LabelFor(m => m.AdditionalNotes)</label>
                <div class="controls">
                    @Html.TextAreaFor(m => m.AdditionalNotes, new { @class = "span6 m-wrap", rows = 3 })
                    <span class="help-block m-wrap">In the event the selected time you have chosen is not available, please state above if your booking time is flexible.</span>
                </div>
            </div>

            <div class="form-actions">
                <button type="submit" class= "btn blue" id="submit" onclick="disable();"><i class="icon-ok"></i>Submit</button>
                <button type="button" class="btn" onclick="location.href='RequestedAppointments'">Cancel</button>

            </div>
        }
    </div>

   <div class="form-actions">
                <button type="submit" class= "btn blue" id="submit" onclick="disable();"><i class="icon-ok"></i>Submit</button>

  <script>

function disable() {
    x = document.getElementById("submit");
    x.disabled = true;
    x.textContent = "Submitting...";
    document.getElementById("apptReqForm").submit();
    setTimeout(enable, 5000);
}

function enable() {
    x = document.getElementById("submit");
    x.disabled = false;
    x.textContent = " Submit";
}
      </script>          
4

2 に答える 2

0

3 つの単純な行を信じますか...

ボタンのIDを「送信」から他のものに変更します。これはVisual Studioを混乱させるためです

 id="submitreq"

次に、submitHandler 関数に以下を追加しました。

  var submitButton = document.getElementById("submitreq");
                submitButton.disabled = true;
                submitButton.textContent = "Submitting...";

                form.submit();
于 2013-06-06T14:54:06.717 に答える