1

jQuery がフォームの値を受信しないという問題があることがわかりました。

非表示の div にフォームがあり、ユーザーが「send pm」をクリックすると、フォームが表示されます。

<div class="interactContainers" id="private_message1">
<form action="javascript:sendPM();" name="pmForm" id="pmForm" method="post">
<font size="+1">Sending Private Message to <strong><em><?php echo "$username"; ?></em></strong></font><br /><br />
Subject:
<input name="pmSubject" id="pmSubject" type="text" maxlength="64" style="width:90%;" />
Message:
<textarea name="pmTextArea" id="pmTextArea" rows="8" style="width:90%;"></textarea>
  <input name="pm_sender_id" id="pm_sender_id" type="hidden" value="<?php echo $sessionid ?>" />
  <input name="pm_sender_name" id="pm_sender_name" type="hidden" value="<?php echo $user ?>" />
  <input name="pm_rec_id" id="pm_rec_id" type="hidden" value="<?php echo $profileid ?>" />
  <input name="pm_rec_name" id="pm_rec_name" type="hidden" value="<?php echo $username ?>" />
  <input name="pmWipit" id="pmWipit" type="hidden" value="<?php echo $thisRandNum ?>" />
  <span id="PMStatus" style="color:#F00;"></span>
  <br /><input name="pmSubmit" type="submit" value="Submit" />
<span id="pmFormProcessGif" style="display:none;"><img src="../_Images/loading.gif" width="28" height="10" alt="Loading" /></span></form>
</div>

情報が入力されたことを確認する JQuery スクリプトがありますが、データが受信されていないことがわかります。

「件名を入力してください」または「メッセージを入力してください」という出力が表示され続けます

JQuery

$('#pmForm').submit(function(){$('input[type=submit]', this).attr('disabled', 'disabled');});
function sendPM ( ) {
      var pmSubject = $("#pmSubject");
      var pmTextArea = $("#pmTextArea");
      var sendername = $("#pm_sender_name");
      var senderid = $("#pm_sender_id");
      var recName = $("#pm_rec_name");
      var recID = $("#pm_rec_id");
      var pm_wipit = $("#pmWipit");
      var url = "../_Scripts/private_msg_parse.php";
      if (pmSubject.val() == "") {
           $("#jqueryReply").html('<img src="../_Images/round_error.png" alt="Error" width="31" height="30" /> &nbsp; Please type a subject.').show().fadeOut(6000);
      } else if (pmTextArea.val() == "") {
           $("#jqueryReply").html('<img src="../_Images/round_error.png" alt="Error" width="31" height="30" /> &nbsp; Please type in your message.').show().fadeOut(6000);
      } else {
           $("#pmFormProcessGif").show();
           $.post(url,{ subject: pmSubject.val(), message: pmTextArea.val(), senderName: sendername.val(), senderID: senderid.val(), rcpntName: recName.val(), rcpntID: recID.val(), thisWipit: pm_wipit.val() } ,           function(data) {
               $("#jqueryReply").html(data).show().fadeOut(10000);
               document.pmForm.pmTextArea.value='';
               document.pmForm.pmSubject.value='';
               $("#pmFormProcessGif").hide();
           });
      }
}

ここに何が起こっているかを見るためのフィドルがあります。http://jsfiddle.net/RKN39/

4

2 に答える 2

1

フォームの値を Jquery の変数に解析する場合、必要な値を jQuery に伝える必要があります。.val() を使用すると、jQuery はテキスト フィールドの値を取得します。

var pmSubject = $("#pmSubject").val();
var pmTextArea = $("#pmTextArea").val();
var sendername = $("#pm_sender_name").val();
var senderid = $("#pm_sender_id").val();
var recName = $("#pm_rec_name").val();
var recID = $("#pm_rec_id").val();
var pm_wipit = $("#pmWipit").val();

それがうまくいくことを願っています!

于 2013-11-13T15:15:06.040 に答える
1

フォームをシリアライズしてみませんか?

$( '#pmForm').on( "submit", function( event ) {

  event.preventDefault();
  var form_data =  $( this ).serialize() ;
  console.log(form_data);
  var pmSubject = $("#pmSubject");
  var pmTextArea = $("#pmTextArea");
  var url = "../_Scripts/private_msg_parse.php";
  if (pmSubject.val() === ""){  
    $("#jqueryReply").html('<img src="../_Images/round_error.png" alt="Error" width="31" height="30" /> &nbsp; Please type a subject.').show().fadeOut(6000);
  } else if (pmTextArea.val() === "") {
    $("#jqueryReply").html('<img src="../_Images/round_error.png" alt="Error" width="31" height="30" /> &nbsp; Please type in your message.').show().fadeOut(6000);
  } else {
    $("#pmFormProcessGif").show();
    $.post(url, form_data,  function(data) {
      $("#jqueryReply").html(data).show().fadeOut(10000);
      pmTextArea.val("");
      pmSubject.val("");
      $("#pmFormProcessGif").hide();
    });
  }
});
于 2013-11-13T15:16:18.850 に答える