我正在尝试在模态窗口中选择输入字段的值。
function title()
{
$('a.title_filestock').click(function(e) {
e.preventDefault();
var data = $(this).children('img').attr('rel');
var active = $(this).next('a.filestock_preview');
var value = active.text();
new VayesModal('<label for=Display Name"><input id="'+data+'" type="text" size="12" value="'+$.trim(value)+'" />', { modal: true, modalOpacity: '.5', title: 'Type File Display Name', titleClass: 'anim warning', buttons: [{id: 0, label: 'Save', val: 'Y', btnClass: 'btn-success'}, {id: 1, label: 'Cancel', val: 'N', btnClass: 'btn-danger'}], callback: function(val) { if(val == 'Y') { alert($('input[id="'+data+'"]').val()); active.text('new string'); } else return false; }});
});
}
title();
“new string”应为$('input[id="'+data+'"]').val()
但返回undefined。我可能犯了错误?
答案 0 :(得分:0)
试试alert($('input[id="'+data+'"]').length)
。它应该为零,因为我认为您的输入元素仍未加载到模态中,并且您已经尝试访问它。
答案 1 :(得分:0)
问题是,那 回调:function(val){ 无法从函数标题()访问本地“数据”变量(已定义) 尝试提醒(数据),这也将是未定义的。
尝试console.log($(this))将返回,因为这必须是任何父对象(可能是一些ModalWindow对象),也许你可以在其中添加“data”变量并从回调中加载 }
我没有在谷歌上找到任何现有的VayesModal库,所以我无法帮助你。 试试http://jqueryui.com/demos/dialog/#modal-form
小提示: $('input [id =“'+ data +'”]')等于$('input#“'+ data)编辑: 找到它:)删除模态窗口后调用回调,因此输入尚不存在。去messi.js,方法 Messi.prototype.hide(after){和move“”if(after)after.call(); “”到this.messi.animate ...函数的第一行,之前.remove()} 但请记住,您更改了插件源代码。 (VayesModal是梅西插件。)