我在带有一些自定义验证的模态窗口中有一个表单,我在按钮 .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 插件在文档加载后在模式窗口上加载表单。这是它在不同的 html 文件中的形式,该文件是使用 bpopup 将 ajax 作为弹出窗口加载的,脚本链接在此文件中。
<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();
}
}
} );
});
})