javascript - 如何在输入元素文本字段中显示特殊字符但仍保留 JQuery 中的值

标签 javascript php jquery

我希望通过显示一些特殊字符来隐藏文本字段条目,但在内部访问该值时,我想获取用户输入的条目。

必须是 type="text"这样的

<input type="text" id="mytext" value="" size="60" maxlength="128" class="form-text mck-input-text required" />

非常感谢。

最佳答案

如果键入的内容有任何安全性,这不是一个好主意。

密码输入可能是更好的选择。

如果您想要显示随机字符,您必须在脚本中执行此操作并将值分配给 obscured 变量而不是“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>

在您的表单中,将包含 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,window.event);" /> 

返回输入的真实字母

<?php echo htmlspecialchars($_POST['real_text_hidden_input']); ?>

后退按钮用于删除字符并且提交的结果反射(reflect)删除的版本:

    <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']); ?>

这可能是键盘事件处理的有用引用:http://javascript.info/tutorial/keyboard-events

关于javascript - 如何在输入元素文本字段中显示特殊字符但仍保留 JQuery 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34727252/

相关文章:

dom插入后执行javascript

javascript - 将数据存储在模型中并从 Collection 和 Fetch 中调用

php - CSS-检查并在 li 有 ul 的地方添加右箭头

JavaScript - for 在 x 轴和 y 轴上循环

javascript - 淡出背景 - 简单的 Jquery

javascript - ThreeJS 更新相机位置,使平面世界位置与 DIV 屏幕位置匹配

javascript - css:重叠具有绝对位置的响应图像

javascript - 如何在 ng-repeat in Angular 中正确使用变量变量名?

php - 在没有函数的类中从其他变量设置变量

javascript - 更改文本区域中特定部分的文本颜色