如何在jquery中的js var中更新文本输入值

时间:2010-09-15 17:41:25

标签: jquery forms variables jquery-plugins refresh

我有一个jquery +插件Boxy +表单输入混乱。

就是这种情况:

1 - 当我按下链接时,弹出窗口中会出现一个只有文本输入和提交按钮的表单。

2-当我写一些文本并按下提交按钮时,我在js var中获取文本输入值,并通过ajax将其发送到执行操作的PHP函数,并返回结果。

3 - 我得到结果,弹出窗口关闭。一切都很好。

当我想重复操作时,我的问题就开始了。当我单击步骤1中的链接以使表单出现时,表单中输入的文本仍然具有第一个操作值。我认为它应该是一种新形式,但它似乎仍然是第一种形式。我不知道如何更新文本输入值。

这是我的代码:(仍处于开发阶段)

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

    var myForm = '<div><form action="" method="">';
    myForm += 'New gallery name <input type="text" name="galleryName" /><br />';
    myForm += '<input type="button" name="create" value="create" />';
    myForm += '</form></div>';

    var littleWindow = null;
        $('#new_gallery').click(function(){
            littleWindow = new Boxy(myForm,
                    {
                        type:'POST',
                        modal:true,
                        closeable:true,
                        title:'some title',
                        behaviours: function(c) {
                            c.find('input[name="create"]').click(function(){
                                var newGalleryName = $('input[name="galleryName"]').val();
                                if(newGalleryName.length < 3)
                                {
                                    Boxy.alert('Please, write a name for your gallery');
                                } else {
                                    alert(newGalleryName);//To check its value. It doesn´t refresh!

                                    $.post('photos/new_gallery/'+newGalleryName,function(data){
                                        if(data=='error')
                                        {
                                            Boxy.alert('ERROR',function(){littleWindow.hide()});
                                        } else {
                                            Boxy.alert('the gallery with ID '+data+' has been created',function(){
                                                    littleWindow.hide(function(){
                                                            var newGalleryDiv = '<div class="gallery" title="'+data+'"><h3>'+newGalleryName+'</h3></div>';
                                                            $('#galleries').append(newGalleryDiv);
                                                        });
                                                }); 
                                        }//else #2
                                    });

                                }//else #1
                            });
                        }//behaviours
                    });
         });

    });
    </script>

为什么我第二次做$('#new_gallery')。click(function(){...我没有新的新表格?

有人可以给我一个灯吗?提前谢谢。

修改

我在Youtube上发布了一个视频,向您展示我的问题:

http://www.youtube.com/watch?v=fNftwwVXvYc(推荐1080) 在视频中,代码和网络都是西班牙语。我已在StackOverflow中将其翻译过来。

2 个答案:

答案 0 :(得分:0)

$('input[name="galleryName"]').val("");

$('input[name="galleryName"]').attr("value","");

在脚本末尾使用它,这将清除表单输入

修改

你尝试过这样的事吗

//BEFORE
$('#galleries').append(newGalleryDiv);
//AFTER
$('#galleries').append(newGalleryDiv).find('input[name="galleryName"]').attr("value","");

答案 1 :(得分:0)

Ara你混合PHP和JavaScript吗? JavaScript中没有.=运算符。您可能想要使用+=