Javascript 如何在输入元素文本字段中显示特殊字符,但仍保留JQuery中的值
我希望通过显示一些特殊字符来隐藏文本字段条目,但在内部,当我访问该值时,我希望获得用户输入的条目 它必须是type=“text”类型,如Javascript 如何在输入元素文本字段中显示特殊字符,但仍保留JQuery中的值,javascript,php,jquery,Javascript,Php,Jquery,我希望通过显示一些特殊字符来隐藏文本字段条目,但在内部,当我访问该值时,我希望获得用户输入的条目 它必须是type=“text”类型,如 非常感谢。如果键入的内容有任何安全性,那么这不是一个好主意 密码输入可能是更好的选择 如果希望显示随机字符,则必须在脚本中执行此操作,并将值指定给obclused变量,而不是“x”。为了清楚起见,这个版本不处理其他关键事件,因此您不能删除任何键入的字母,但它只是提供一些您可以开发的可用代码。下面的第二个版本允许使用“后退”按钮删除字符 文本框文本在您键入时
非常感谢。如果键入的内容有任何安全性,那么这不是一个好主意 密码输入可能是更好的选择 如果希望显示随机字符,则必须在脚本中执行此操作,并将值指定给
obclused
变量,而不是“x”。为了清楚起见,这个版本不处理其他关键事件,因此您不能删除任何键入的字母,但它只是提供一些您可以开发的可用代码。下面的第二个版本允许使用“后退”按钮删除字符
文本框文本在您键入时变为白色-这需要与您使用的任何背景相匹配,并且在键入时它仍然短暂存在,只是在替换之前不可见
在PHP页面标题中:
<script language="javascript">
var obscured = '';
var real_value = '';
function obscure_it(real_value,ev){
document.getElementById('text_input').style.color = '#fff';
document.getElementById('real_text_hidden_input').value = document.getElementById('real_text_hidden_input').value+real_value.substr(real_value.length - 1);
obscured = window.obscured+'x'; // or + a randomly generated character
window.obscured = obscured;
document.getElementById('text_input').value = obscured;
document.getElementById('text_input').style.color = '#000';
}
function white_it(){
document.getElementById('text_input').style.color = '#fff';
}
</script>
把真正的信件打回来
<?php echo htmlspecialchars($_POST['real_text_hidden_input']); ?>
“后退”按钮用于删除字符的版本,提交的结果反映了删除:
<script language="javascript">
var ev = '';
var obscured = '';
var real_value = '';
function obscure_it(real_value,ev){
document.getElementById('text_input').style.color = '#fff';
document.getElementById('real_text_hidden_input').value = document.getElementById('real_text_hidden_input').value+real_value.substr(real_value.length - 1);
if(ev.keyCode != 8){
obscured = window.obscured+'x';
window.obscured = obscured;
document.getElementById('text_input').value = obscured;
}else{
document.getElementById('real_text_hidden_input').value = document.getElementById('real_text_hidden_input').value.substr(0, (document.getElementById('real_text_hidden_input').value.length-2));
}
document.getElementById('text_input').style.color = '#000';
}
function white_it(){
document.getElementById('text_input').style.color = '#fff';
}
</script>
var ev=“”;
var模糊=“”;
var实际值=“”;
函数值(实际值,ev){
document.getElementById('text_input')。style.color='#fff';
document.getElementById('real_text_hidden_input')。value=document.getElementById('real_text_hidden_input')。value+real_value.substr(real_value.length-1);
如果(ev.keyCode!=8){
暗显=窗口。暗显+'x';
window.obclused=被遮挡;
document.getElementById('text_input')。值=模糊;
}否则{
document.getElementById('real_text_hidden_input')。value=document.getElementById('real_text_hidden_input')。value.substr(0,(document.getElementById('real_text_hidden_input')。value.length-2));
}
document.getElementById('text_input')。style.color='#000';
}
函数white_it(){
document.getElementById('text_input')。style.color='#fff';
}
及表格:
<form name="form" id="form" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" method="post">
<input type="hidden" name="real_text_hidden_input" id="real_text_hidden_input" value="" />
<input type="text" name="text_input" id="text_input" onKeyPress="white_it()" onKeyUp="obscure_it(this.value, event);" />
<input type="submit" name="sbutton" id="sbutton" value="Submit" /><br />
</form>
<a href="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']); ?>">Click to start a new submission</a>
<br /><?php echo htmlspecialchars($_POST['real_text_hidden_input']); ?>
无论您的问题是什么,都可能在于您使用jQuery对值所做的操作,而不是您向我们展示的任何代码。为什么要对此进行标记但不进行标记?很遗憾,我无法为其提供type=“password”。我必须将其保留为type=“text”您可以尝试使用javascript,捕捉输入中的keypress
或keyup
事件,将新字符存储在某个javascript变量中,并用您的特殊字符替换输入值
,使用javascript将输入类型更改为密码?
<script language="javascript">
var ev = '';
var obscured = '';
var real_value = '';
function obscure_it(real_value,ev){
document.getElementById('text_input').style.color = '#fff';
document.getElementById('real_text_hidden_input').value = document.getElementById('real_text_hidden_input').value+real_value.substr(real_value.length - 1);
if(ev.keyCode != 8){
obscured = window.obscured+'x';
window.obscured = obscured;
document.getElementById('text_input').value = obscured;
}else{
document.getElementById('real_text_hidden_input').value = document.getElementById('real_text_hidden_input').value.substr(0, (document.getElementById('real_text_hidden_input').value.length-2));
}
document.getElementById('text_input').style.color = '#000';
}
function white_it(){
document.getElementById('text_input').style.color = '#fff';
}
</script>
<form name="form" id="form" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" method="post">
<input type="hidden" name="real_text_hidden_input" id="real_text_hidden_input" value="" />
<input type="text" name="text_input" id="text_input" onKeyPress="white_it()" onKeyUp="obscure_it(this.value, event);" />
<input type="submit" name="sbutton" id="sbutton" value="Submit" /><br />
</form>
<a href="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']); ?>">Click to start a new submission</a>
<br /><?php echo htmlspecialchars($_POST['real_text_hidden_input']); ?>