单击另一个文本框时清除文本输入(如果它是空的)-jQuery
Clearing a text input (if it's empty) when another text box is clicked - jQuery
我有一个电子邮件文本框,其中包含文本"(非必需)",直到用户单击它,此时它变为空白。如果用户在没有输入电子邮件地址(或任何内容)的情况下单击另一个文本框,文本框将恢复为包含(不必输入)。
这是我的:
$(document).ready(function () {
$('#email').val("(Not Required)");
// this part works fine
$('#email').click(function(){
if ($(this).val() == '(Not Required)'){
$(this).val('');
}
});
// this isn't working
$(':text').click(function(){
var em = $('#email').val().length();
if (em<3){
$('#email').val('(Not Required)');
}
});
});
我不明白为什么第二部分不能正常工作。任何帮助都会得到我一生对自己的奉献。永远
var em = $('#email').text().length();
应该是
var em = $('#email').val().length;
我向你展示了一种更好的链式方法:
$(document).ready(function () {
$('#email').val("(Not Required)").foucs(function() {
$(this).val('');
}).blur(function() {
if ($(this).val().length < 3 ){
$(this).val('(Not Required)');
}
});
});
您必须使用$('#email').val().length
而不是$('#email').text().length()
更改
$('#email').text().length();
至
$('#email').val().length;
只是一个建议,为什么不使用电子邮件输入的blur()事件来返回"非必需"文本,而不是等待点击另一个输入框?
click
不是你应该抓住的事件。focus
是要走的。永远不要忘记键盘导航- 不要查询DOM两次,保存DOM元素并使用它
- 用
val()
代替text
,用长度代替length()
:text
不是一个好的选择器。它意味着全局选择器$('*')
$(document).ready(function () {
var $email = $('#email');
$email.val("(Not Required)");
// this part works fine
$email.focus(function(){
if (this.value == '(Not Required)'){
this.value ='';
}
});
$('#otherTextBoxId').focus(function(){
if ($email.val().length <3 ){
$email.val('(Not Required)');
}
});
});
相关文章:
- 基于文本jquery php更改按钮
- 选择“p文本jquery”
- 附加 HTML 转义文本:jQuery
- 如何知道选中/突出显示的文本jquery的顺序出现
- Action.on('模糊')不't处理输入文本-jQuery 1.9+
- 在当前工具提示文本 JQuery 旁边追加或添加新文本
- 文本自动移动以适应动画相邻文本 (jquery):如何平滑
- 获取锚点的特定文本 - jQuery
- 从文本 jquery 中查找和挑选出模式
- 延迟后如何更改文本 - jQuery.
- 更改按钮文本 jQuery
- 使用 :包含 找到一个文本 jquery
- 获取引导程序单选按钮文本-jquery
- onchange函数转换为输入文本JQuery的数组
- 语法错误未终止字符串文本jquery
- 将输入占位符文本与span文本jquery交换
- 更改数值为文本- jQuery / NivoSlider
- 在文本区搜索指定的文本- jQuery/Javascript
- 一个字一个字地突出显示文本(jquery)(关闭)
- 无终止字符串文本jquery或更多