0

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

我的插件:

(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>
4

1 回答 1

1

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

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

于 2013-01-18T11:04:17.540 回答