Javascript Jquery根据输入值显示输入文本
我在jquery中遇到了基于输入值显示输入文本的问题。 以下是JS fiddle演示: 当我尝试输入@hotmail时,将显示输入框。但当我想在#hotm输入框中键入一些文本时,它会再次隐藏 JS代码:Javascript Jquery根据输入值显示输入文本,javascript,jquery,text,input,Javascript,Jquery,Text,Input,我在jquery中遇到了基于输入值显示输入文本的问题。 以下是JS fiddle演示: 当我尝试输入@hotmail时,将显示输入框。但当我想在#hotm输入框中键入一些文本时,它会再次隐藏 JS代码: $(window).load(function(){ var myString = '@hotmail'; $('#hotm').hide(); $("input").keyup(function () { var value = $(this).val(); if($(this).
$(window).load(function(){
var myString = '@hotmail';
$('#hotm').hide();
$("input").keyup(function () {
var value = $(this).val();
if($(this).val().match(myString)) {
$('#hotm').show();
} else {
$('#hotm').hide();
}
});
});
这是因为选择器
$(“输入”)
会影响两个输入元素。我将其更新为$(“输入:第一”)
选择器
你影响了所有的输入。为每个对象指定一个唯一的ID/类,或者使用jQuery$(this)方法 请参见此处的JSFIDLE:
var myString='@hotmail';
$('#secondinput').hide();
$(“#firstinput”).keyup(函数(){
var值=$(this.val();
if($(this.val().match(myString)){
$('#secondinput').show();
}否则{
$('#secondinput').hide();
}
});
对您的if部件使用此选项:
if($(this).val().match($(this).val().substr(0,strlen($(this).val())))
这是因为新的框也=“输入”;如果你给hotmail文本框它自己的id,它不会隐藏
<input id="hotmail" type="text"/>
正如许多人所说,您正在将事件绑定到所有输入上,我做了一些小小的更改:
$(function(){
var myString = /@hotmail/ig;
$("#check").bind('keyup checkvalue', function() {
$('#hotm')[myString.test(this.value) ? 'show' : 'hide']();
}).trigger('checkvalue');
});
如果您使用的是@HoTmAil
,则使用regex它也会发现这一点,并且还添加了一个自定义事件checkvalue
,以查看#hotm
是否应该在您可能使用的表单上的回发上可见
演示:检查,非常感谢。。。问题解决了…:)
<input id="hotmail" type="text"/>
$("#hotmail").keyup(function () {...});
$(function(){
var myString = /@hotmail/ig;
$("#check").bind('keyup checkvalue', function() {
$('#hotm')[myString.test(this.value) ? 'show' : 'hide']();
}).trigger('checkvalue');
});