检索fancyBox内的文本框的值

时间:2012-01-13 19:24:24

标签: jquery asp.net

通过内联模式使用最新版本的fancyBox,我无法获取文本框的值来提交数据。

使用常规输入按钮,而不是asp.net控件,但文本框是asp.net。

document.getElementById('<%= txtCancelReason.ClientID %>');

当我初始化fancyBox时,这是有效的,但如果我单击提交按钮,则该值为空。尝试过使用jQuery来获取价值,没有任何作用。

思想?

3 个答案:

答案 0 :(得分:0)

你能看到为文本框生成的HTML代码吗?您可以使用Jquery获取对ID以txtCancelReason结尾的控件的引用

$('input:text[id$=\'txtCancelReason\']').val();

将为您提供文本框的值

答案 1 :(得分:0)

您是否尝试过定位Fancybox类,然后在其中搜索文本框?

$('#button-id').on('click', function () {
    var $textbox = $('.fancybox-wrap').find('input[type="text"]'),
        textVal  = $textbox.val();
});

Fancy box 1.x.x和2.x.x都使用.fancybox-wrap类,因此它应该适用于任何一个版本。

您还可以选择相对于按钮的文本框:

$('#button-id').on('click', function () {
    var $textbox = $(this).closest('form').find('input[type="text"]'),
        textVal  = $textbox.val();
});

请注意,.on()是jQuery 1.7中的新增内容,在这种情况下与使用.bind()相同。

答案 2 :(得分:0)

这是解决方案:

  1. 检查您的网页并获取表单的ID,例如: form1

  2. 搜索fancybox js文件: appendTo(“body”)并将其替换为 appendTo(“#form1”)

  3. 它会像魅力一样工作