如何添加onBlur以在javascript上运行

时间:2017-03-18 14:01:19

标签: javascript jquery

我想在我的javascript代码里面添加onblur函数到html代码,下面我的代码不能正常工作。请有人就此向我提出建议

  <script type="text/javascript">
  $(document).ready(function() {
    var max_fields      = 15; //maximum input boxes allowed
    var wrapper         = $(".input_fields_wrap"); 
    var add_button      = $(".add_field_button"); 
    var fname_lname = ' <div class="form-group"><label for="inputRegNo" class="col-lg-3 col-md-3 col-sm-3 col-xs-3 control-label" style="text-align: left;"></label><input class="special-block" type="text" name="fname[]" placeholder="Name" onblur="document.getElementById('refa5').innerHTML+='<br/>'+ this.value"    />&nbsp;&nbsp;<input class="special-block" type="text" name="lname[]" placeholder="Designation" /><button href="#" class="remove_field">-</button></div>'

    var x = 1;
    $(add_button).click(function(e){ 
        e.preventDefault();
        if(x < max_fields){ 
            x++; //text box increment
            $(wrapper).append(fname_lname); 
        }
    });

    $(wrapper).on("click",".remove_field", function(e){          
     e.preventDefault(); $(this).parent('div').remove(); x--;
    })
});

2 个答案:

答案 0 :(得分:1)

你能试试吗:

  <script type="text/javascript">
  $(document).ready(function() {
    var max_fields      = 15; //maximum input boxes allowed
    var wrapper         = $(".input_fields_wrap"); 
    var add_button      = $(".add_field_button"); 
    var fname_lname = ' <div class="form-group"><label for="inputRegNo" class="col-lg-3 col-md-3 col-sm-3 col-xs-3 control-label" style="text-align: left;"></label><input class="special-block" type="text" name="fname[]" placeholder="Name" />&nbsp;&nbsp;<input class="special-block" type="text" name="lname[]" placeholder="Designation" /><button href="#" class="remove_field">-</button></div>'

    var x = 1;
    $(add_button).click(function(e){ 
        e.preventDefault();
        if(x < max_fields){ 
            x++; //text box increment
            $(wrapper).append(fname_lname); 
            $(wrapper).on("blur", "special-block", function() {
                document.getElementById('refa5').innerHTML+='<br/>'+ this.value
            })
        }
    });

    $(wrapper).on("click",".remove_field", function(e){          
     e.preventDefault(); $(this).parent('div').remove(); x--;
    })
});

答案 1 :(得分:1)

<强>第一

我认为你的问题在这里:

var fname_lname = ' <div class="form-group"><label for="inputRegNo" class="col-lg-3 col-md-3 col-sm-3 col-xs-3 control-label" style="text-align: left;"></label><input class="special-block" type="text" name="fname[]" placeholder="Name" onblur="document.getElementById('refa5').innerHTML+='<br/>'+ this.value"    />&nbsp;&nbsp;<input class="special-block" type="text" name="lname[]" placeholder="Designation" /><button href="#" class="remove_field">-</button></div>'

在该行的hlaf之后你有这个:'refa5'和这个'<br/>'已经破坏了你的字符串。在这一行之后,你的代码不起作用。

第二:要将事件设置为追加元素,您无法通过在元素前添加文本来执行此操作。事实并非如此:

<input class="special-block" type="text" name="fname[]" placeholder="Name" onblur="document.getElementById('refa5').innerHTML+='<br/>'+ this.value"    />

您必须使用绑定:

$('.special-block').on('blur', function(){
   document.getElementById('refa5').innerHTML+='<br/>'+ $(this).value;
}

不要忘记将this.value替换为$(this).value