2012-03-06 11 views
2

私はJQueryを使い始めました。モーダルポップアップの例は、従来のaspページ内で編集しています。私は動作するフォームを取得し、送信ラインを追加しましたが、送信後に私はrequest.form( "電子メール")を使用してASPで送信された値を取得しようとしましたが、空白になります。JQuery:提出されたモーダルダイアログから値を取得する

これは、私が提出している方法、値の読み方、または他の何かに問題がありますか?フォームを送信して値を取得するには、私は何をする必要がありますか?ここで

はコードです:

私はこれでダイアログを呼び出します。

<strong>Forgot your login?:</strong> <a href="#" id="send-password">click here</a></p> 

ダイアログ形式:

<div id="dialog-form" title="Send My Login"> 
     Enter the email address associated with your account. Your password will be sent to you. 
     <br /> 
     <strong>If you do not have an email address</strong>, or do not 
     remember it, please contact your Human Resources department to have your login 
     provided to you. 

     <p class="validateTips"> 

     </p> 

     <form action="SendLogin.asp" method="Post" name="modalPopup"> 
     <fieldset> 

      <label for="email">Email</label> 
      <input type="text" name="email" id="email" value="" class="text ui-widget-content ui-corner-all" /> 

     </fieldset> 
     </form> 
    </div> 

ダイアログコード:

<script type="text/javascript"> 

    $(function() { 

     //Modal pop-up form 
     // a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore! 
     $("#dialog:ui-dialog").dialog("destroy"); 

     var email = $("#email"), 
       allFields = $([]).add(email); 
       tips = $(".validateTips"); 

     function updateTips(t) { 
      tips 
        .text(t) 
        .addClass("ui-state-highlight"); 
      setTimeout(function() { 
       tips.removeClass("ui-state-highlight", 1500); 
      }, 500); 
     } 

     function checkLength(o, n, min, max) { 
      if (o.val().length > max || o.val().length < min) { 
       o.addClass("ui-state-error"); 
       updateTips("Length of " + n + " must be between " + 
         min + " and " + max + "."); 
       return false; 
      } else { 
       return true; 
      } 
     } 

     function checkRegexp(o, regexp, n) { 
      if (!(regexp.test(o.val()))) { 
       o.addClass("ui-state-error"); 
       updateTips(n); 
       return false; 
      } else { 
       return true; 
      } 
     } 

     $("#dialog-form").dialog({ 
      autoOpen: false, 
      height: 350, 
      width: 350, 
      modal: true, 
      buttons: { 
       "Send Login": function() { 
        var bValid = true; 
        allFields.removeClass("ui-state-error"); 

        bValid = bValid && checkLength(email, "email", 5, 80); 

        // From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/ 
        bValid = bValid && checkRegexp(email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "Please enter a valid email address."); 

        if (bValid) { 
         $("#users tbody").append("<tr>" + 
           "<td>" + email.val() + "</td>" + 
          "</tr>"); 
         $(this).dialog("close"); 
         $("form[name='modalPopup']").submit() 

        } 

       }, 
       Cancel: function() { 
        $(this).dialog("close"); 
       } 
      }, 
      close: function() { 
       allFields.val("").removeClass("ui-state-error"); 
      } 
     }); 

     $("#send-password") 

       .click(function() { 
        $("#dialog-form").dialog("open"); 
       }); 


    }); 
</script> 

フォームSendLogに送信されますin.aspと私はこれで値を受け取ろうとします:

<%tempEmail=request.form("email")%> 

私は後でそれを印刷しようとするとtempEmailが空になります。送信されたフォームの値を取得するには何が必要ですか?

ご協力いただきましてありがとうございます。

+0

は、あなたがそこに 'のRequest.Form(「電子メール」)の値は'とフォームが送信されていることを確認していますか? –

+0

@jkフォームダイアログのアクションはSendLogin.aspです。送信ラインを追加したときは、フォームが正しく送信されていると思ったので、私は間違いなくSendLogin.aspに送られました。しかし、SendLogin.aspにはrequest.form( "email")があり、それに値がないかのように空白になっています。応答に感謝します。私は何をすべきですか? – Cineno28

答えて

0

は、あなたのこれに提出する変更してみてください:

document.modalPopup.submit(); 
+0

提案してくれてありがとうございました。しかし、私は依然として私のrequest.form( "電子メール")の空白の値で終わっています。なぜそれが来ていないのかわからない – Cineno28

+0

何らかの理由でそれは今働いています。私は何を変えたのか分かりませんが、あなたが提案したラインは間違いなくフォームを提出していますので、助けてくれてありがとう! – Cineno28

+0

@ Cineno28素晴らしいよ!あなたが持っていた方法でテストページを作成しても動作しませんでしたが、 'document.modalPopup.submit();'はうまくいきましたので、フォームが適切に提出されていないと思って代替提出。 –

関連する問題