1

カスタム検証を備えたモーダルウィンドウにフォームがあり、ボタン .click でフォームデータをシリアル化し、フォームアクションは javascript:void() です。オプションの入力フィールドがあります。

<input type="text" name="property_id" id="pid" value='' class="optional"/>

これを選択的にシリアル化します

var values = $(form).find('input[value!=""]').serialize();

フォームに入力したときにpidフィールドの値属性が更新されず、送信されていないため、chrome jsコンソールで実行してみました

$("#pid").val()

入力したものは何でも表示されますが、

$("#pid").attr('value')

私に「」を与える

この動作の理由は何ですか? このフォームをロードする ajax です。編集:私は bpopup jquery プラグインを使用して、ドキュメントの読み込み後にモーダル ウィンドウにフォームを読み込みます。これは、スクリプトがこのファイルにリンクされている bpopup を使用してポップアップとしてロードされた ajax である別の html ファイルの形式です。

<form class="form-horizontal" id="vmuform" action="javascript:void(0);">

コード全体が長すぎてここに投稿できません

$(function(){
$("#vmusubmit").click(function(){
var uname=
var pass= 
var base = 
var form = $(this).parents('form:first');
console.log(form.attr('id'))
if(form.attr('id') === 
var path=
if(form.attr('id') === 
var path="
if(form.attr('id') === 
var path="

var values = $(form).find('input[value!=""]').serialize();
console.log(values);
$.ajax( {crossDomain: true,
       username:uname,
       password: pass,
       type: "POST",
       url: base+path,
       data: values,
       dataType:"xml",
       success: function( response ) {
           console.log( response );
           var stat=$(response).find('rsp').attr('stat');
           if(stat ==='ok'){
               $('#mod-alert').html("Data successfully added.").addClass("alert-success").removeClass("alert-error").show();
           }
           else
               {
                   $('#mod-alert').html($(response).find('message')).addClass("alert-error").removeClass("alert-success").show();
               }
       }
} );
});

})
4

1 に答える 1