Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态添加的输入框为';动态绑定_Javascript_Jquery_Html_Css_Input - Fatal编程技术网

Javascript 动态添加的输入框为';动态绑定

Javascript 动态添加的输入框为';动态绑定,javascript,jquery,html,css,input,Javascript,Jquery,Html,Css,Input,我正在使用在document.ready上调用的Jquery输入现代化器函数,该函数来自以下链接: 在我的JavaScript代码中,我向DOM添加了两个输入框。如何动态绑定这些输入对象,使其显示与文档准备就绪时存在的输入框相同的功能 var add= '<input type="text" size="75" placeholder="This is a Comment" id="txtComment" />' + '<br /><input type="tex

我正在使用在document.ready上调用的Jquery输入现代化器函数,该函数来自以下链接:

在我的JavaScript代码中,我向DOM添加了两个输入框。如何动态绑定这些输入对象,使其显示与文档准备就绪时存在的输入框相同的功能

var add= '<input type="text" size="75" placeholder="This is a Comment" id="txtComment" />'
+ '<br /><input type="text" placeholder="2012-03-24" id="txtDate" /><br /><button id="submit">Submit</button>';

$(this).html(addTargetForm);


function modernizer_init() {
    if (!Modernizr.input.placeholder) {

        $('[placeholder]').onfocus(function () {
            var input = $(this);
            if (input.val() == input.attr('placeholder')) {
                input.val('');
                input.removeClass('placeholder');
            }
        }).blur(function () {
            var input = $(this);
            if (input.val() == '' || input.val() == input.attr('placeholder')) {
                input.addClass('placeholder');
                input.val(input.attr('placeholder'));
            }
        }).blur();
        $('[placeholder]').parents('form').submit(function () {
            $(this).find('[placeholder]').each(function () {
                var input = $(this);
                if (input.val() == input.attr('placeholder')) {
                    input.val('');
                }
            })
        });

    }
}
var add=''
+“

提交”; $(this.html(addTargetForm); 函数现代化器_init(){ if(!modernizer.input.placeholder){ $(“[placeholder]”)。onfocus(函数(){ var输入=$(此); if(input.val()==input.attr('placeholder')){ input.val(“”); input.removeClass('placeholder'); } }).blur(函数(){ var输入=$(此); if(input.val()=''| input.val()==input.attr('placeholder')){ input.addClass(“占位符”); val(input.attr(‘占位符’); } }).blur(); $(“[占位符]”)。父项('form')。提交(函数(){ $(this).find(“[占位符]”).each(函数(){ var输入=$(此); if(input.val()==input.attr('placeholder')){ input.val(“”); } }) }); } }
这应该直接在
$(function(){…})
结构中工作,但如果应用程序需要的话,一定要将它放在
函数现代化器{u init(){}

javascript:

$("body").on('focusin', '[placeholder]', function(evt) {
    var $input = $(evt.target);
    if ($input.val() == $input.attr('placeholder')) {
        $input.val('');
        $input.removeClass('placeholder');
    }
}).on('focusout', '[placeholder]', function(evt) {
    var $input = $(evt.target);
    if ($input.val() == '' || $input.val() == $input.attr('placeholder')) {
        $input.addClass('placeholder');
        $input.val($input.attr('placeholder'));
    }
}).on('submit', 'form', function(evt) {
    var $form = $(evt.target);
    $form.find('[placeholder]').each(function() {
        var $input = $(this);
        if ($input.val() == $input.attr('placeholder')) {
            $input.val('');
        }
    });
});
$('[placeholder]').focusout();
这是通过将focusin(焦点)和focusout(模糊)事件的处理委托给文档正文(或者更本地的容器,如果您愿意的话),这是jQuery 1.7.1实现现在不推荐的
bind()
.live()
.delegate()
的方法


查看它是否正常工作:

请给出绑定原始功能的代码。请发布绑定代码。您使用的是什么版本的jQuery?我自己还没有弄清楚,但有时我确实注意到,当我在动态放置的元素上使用jQuery.bind()时,有时bind()无法正常工作,而live()则无法正常工作。我知道它与DOM交互以及什么时候看什么有关。但是如果bind()不起作用,请尝试live()。但是我也同意Eli的观点,你应该发布你的代码,将你的元素事件“绑定”到你的代码中。