在模态窗口中选择输入值

时间:2012-08-08 08:16:01

标签: jquery jquery-selectors

我正在尝试在模态窗口中选择输入字段的值。

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。我可能犯了错误?

2 个答案:

答案 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是梅西插件。)