在同一个对象jquery的插件中调用一个函数

时间:2013-01-17 17:12:46

标签: jquery plugins

您好我想在我的插件中实现一个对象内部的函数。 目标是: 我有很多带有默认值的输入。 当我点击它时,如果值是“默认值”,取消里面的文字。这很有效。 现在的问题是: 当我提交表单时,我调用一个检查参数的函数,我希望如果输入类型具有默认值,则取消该值。但现在只有最后一个元素才能做到,而不是所有对象。我在插件的main函数中创建了一个函数。提交时如何检查插件中的每个对象并检查是否具有默认值?

我的插件:

(function($){
     $.fn.extend({      
        contact: function(options) {
            var defaults = {
            }

            var options =  $.extend(defaults, options);

            return this.each(function() {
                var o = options;
                var obj = $(this);      
                var value_base = obj.val();

                obj.click(function(){
                    if(obj.val()== value_base){
                        obj.val("");
                    }
                });
                obj.blur(function() {
                    if (obj.val() == ''){
                        obj.val(value_base);
                    }
                });

                $.fn.afterSubmit = function(options) {
                    if(obj.val()== value_base){
                        obj.val("");
                    }
                };

            });
        }
    });     
})(jQuery);

我页面中的代码

<script type="text/javascript">
$(document).ready(function() {
    $('.contact').contact();
});
function autoriz(){
    $('.contact').afterSubmit();
    return false;
}
</script>
<form method="post" action="contatti.php" onSubmit="return autoriz();" enctype="multipart/form-data" name="contatti">
   <input type="text" name="name" class="contact" value="Name" id="name"/>
   <input type="text" name="surname" class="contact" value="Surname" id="surname"/>
</form>

1 个答案:

答案 0 :(得分:1)

看看这个小提琴http://fiddle.jshell.net/YskZy/

在这个例子中,我们绑定了传递表单id的事件提交,因此在提交表单之前,我们可以清除默认值