【问题标题】:Append prefilled character to input box将预填充字符附加到输入框
【发布时间】:2015-09-01 07:59:08
【问题描述】:

我需要一个 jquery 解决方案来在用户键入时用值预填充输入框.. 例如,如果用户正在添加电话号码,例如 1234567890 我需要它在用户键入时自动将文本更改为 (123)456-7890,我有什么方法可以使用 jquery 来做到这一点吗??

【问题讨论】:

标签: jquery maskedinput


【解决方案1】:

试试this

$('#phone-number', '#example-form')

	.keydown(function (e) {
		var key = e.charCode || e.keyCode || 0;
		$phone = $(this);

		// Auto-format- do not expose the mask as the user begins to type
		if (key !== 8 && key !== 9) {
			if ($phone.val().length === 4) {
				$phone.val($phone.val() + ')');
			}
			if ($phone.val().length === 5) {
				$phone.val($phone.val() + ' ');
			}			
			if ($phone.val().length === 9) {
				$phone.val($phone.val() + '-');
			}
		}

		// Allow numeric (and tab, backspace, delete) keys only
		return (key == 8 || 
				key == 9 ||
				key == 46 ||
				(key >= 48 && key <= 57) ||
				(key >= 96 && key <= 105));	
	})
	
	.bind('focus click', function () {
		$phone = $(this);
		
		if ($phone.val().length === 0) {
			$phone.val('(');
		}
		else {
			var val = $phone.val();
			$phone.val('').val(val); // Ensure cursor remains at the end
		}
	})
	
	.blur(function () {
		$phone = $(this);
		
		if ($phone.val() === '(') {
			$phone.val('');
		}
	});

【讨论】:

  • 谢谢,这个解决方案适用于输入框,但我们可以对内容可编辑的真实 div 使用相同的解决方案。我尝试将 val 更改为 html,但它似乎无法正常工作
猜你喜欢
  • 2013-08-14
  • 2011-03-01
  • 2015-09-05
  • 1970-01-01
  • 1970-01-01
  • 2021-12-19
  • 2013-01-19
  • 2012-04-21
相关资源
最近更新 更多