当数据输入到另一个输入时清除输入

当数据输入到另一个输入时清除输入

问题描述:

我有一个具有辅助地址部分的表单。在本节中,您可以填写街道或邮政信箱地址。我想确保只提交一个地址,所以如果用户将数据输入到另一个输入字段,我想清除其他表单。当数据输入到另一个输入时清除输入

我的下面的代码不工作,有什么想法?由于

$('#pobox_number').change(function() { 
if ($(this).val().length > 0) { 
    $('#street_name_postal').val(''); 
} 
+0

你可以提出一个警报,看看函数是否在你输入pobox_number文本框时被调用吗? – Asdfg 2012-03-22 03:22:23

+0

嗨,我试过了,警报没有运行。有什么建议么?谢谢 – 2012-03-22 03:49:03

+0

嗨,大家好,感谢所有的帮助,我通过在ID前添加输入来获得代码。奇怪,但它需要这些目标的ID。如果任何人需要点只是回答使用这:) – 2012-03-22 20:22:38

答案最终是非常简单的,不知道为什么我需要如此精确地定位元素,但在“#street_name_postal”之前添加了输入就是了。

$('#pobox_number').change(function() { 
if ($(this).val().length > 0) { 
$('input#street_name_postal').val(''); 
} 

假设#pobox_number是文本类型的输入更改事件仅在模糊解雇,所以你的代码可能会被工作,但只是没有你指望它。

你可以尝试使用的按键事件,而不是让你的代码看起来像这样:如果元素的ID是正确的

$('#pobox_number').keypress(function() { 
    if ($(this).val().length > 0) { 
     $('#street_name_postal').val(''); 
    } 
} 

您的代码应该工作。工作=清除其他字段的值。

但是,如果您不想发送输入(即使它是空的)内容,则应确保这些元素的name属性为空,如果没有设置name属性,则不发送数据。

您的代码看起来没问题,除了缺少的右括号change。你应该有:

$('#pobox_number').change(function() { 
    if ($(this).val().length > 0) { 
     $('#street_name_postal').val(''); 
    } 
}); 

这是一个工作jsFiddle sample。也就是说,我建议使用blur来代替,否则用户可能会在字段之间来回切换,如果值没有改变,那么事件将不会被触发。这是一个example of the blur approach