将javascript表单变量传递给jQuery函数不起作用

时间:2010-06-15 18:10:40

标签: php javascript jquery forms fancybox

我正在尝试将我已分配给表单变量的一些JavaScript变量传递给名为fancybox的jQuery插件使用的查询字符串。如果我在字符串中硬编码我希望lightbox工作得很好,但我需要它在那里传递一些表单值以使其按需工作。

<script type="text/javascript">
    $(document).ready(function(){

            var item = document.itemFinder.item;
            var zip = document.itemFinder.zip;
            var radius = document.itemFinder.radius;
            var dataString = "item=" + item + "&zip=" + zip + "&radius=" + radius;
            $("#various3").fancybox({
                    ajax : { type   : "POST", data  : dataString},
                    'scrolling'         : 'auto',
                    'overlayOpacity'    : '0'           
                    }               
                );
    });
    </script>

我做错了什么?

1 个答案:

答案 0 :(得分:1)

数据参数需要一个对象。你正在传递一个字符串。像这样改变你的电话:

ajax : { type: "POST", data  : {'item': item, 'zip': zip, 'radius': radius}} 

这应该让你为你正确地序列化你的价值。

- 更新 -

<script type="text/javascript">
  $(document).ready(function(){
     $('#someElement').change(function () {
        var item = document.itemFinder.item;
        var zip = document.itemFinder.zip;
        var radius = document.itemFinder.radius;
        var dataString = "item=" + item + "&zip=" + zip + "&radius=" + radius;
        $("#various3").fancybox({
                ajax : { type   : "POST", data  : dataString},
                'scrolling'         : 'auto',
                'overlayOpacity'    : '0'           
                }               
            );
  });
});
</script>

在我的例子中,我不确定你实际想要绑定哪个事件(你的调用),我不确定还有哪些其他元素可用,但希望无论如何都有意义。谢谢,