我在表单上有两个字段,需要填写相同的数据。
当您在此处输入时:
<?php $value = (isset($lead) ? $lead->name : ''); ?>
<?php echo render_input('name','lead_add_edit_name',$value); ?>
这是我们更新的相同信息:
<?php $value = (isset($lead) ? $lead->company : ''); ?>
<?php echo render_input('company','lead_company',$value); ?>
我找到了这段代码,但是,我无法正常工作:
$("#thing1").bind('input', function () { var stt = $(this).val(); $("#thing2").val(stt); });
有什么想法吗? 谢谢
答案 0 :(得分:1)
您需要在表单字段上绑定正确的DOM事件。
首先,在这种情况下,请确定要复制数据的两个字段(起点和终点)。在您的情况下,您似乎正在使用一种PHP框架(一个wordpress主题?),该框架使用render_input
函数来呈现表单输入字段。
假设该函数的第一个参数表示字段名称,则可以通过以下选择器选择字段:
$("input[name=name]")
$("input[name=company]")
通过了解这一点,您现在将需要在更改值时在第一个字段上拦截DOM事件,因此正确的事件应为'change
'。
正如@Rahul所说,正确的侦听器将是'on
',不再是'bind
'。
$("input[name=name]").on('change',function(){...});
最后,当事件触发时,您只需要将元素的值复制到另一个元素即可。
$("input[name=name]").on('change',function(){
var fieldValue = $(this).val();
$("input[name=company]").val(fieldValue);
});
最后,就像@Quasimodo的克隆所说的那样,最终,将所有代码封装在文档就绪的触发函数中,因此您可以确保在表单字段在页面中实际可用之后将执行该代码。
$(document).ready(function(){
$("input[name=name]").on('change',function(){
var fieldValue = $(this).val();
$("input[name=company]").val(fieldValue);
});
});