我想加载我的ASP.NET页面,接收用户输入并基于它做一些动作。问题是我不想让用户看到他/她打字的内容,输入本身也不应该是可见的。另外,如果输入的长度为6,则我想处理回发。
最近我可以看到这是一个背景颜色的文本框:透明且没有边框。还启用了自动后备功能。文本框获得焦点,当用户按下回车时,调用回发,检查文本长度,然后我在后面的代码中做一些事情。不幸的是,用户可以看到他/她输入的文字,并且必须按下输入。
任何想法我怎样才能做到这一点?
//对于所有想知道我为什么要这样做的人:
页面已加载,用户看到空白页面。她/他将RFID卡放在RFID阅读器上。读者将输入+输入(应该很容易在阅读器本身上设置)发送到页面。出现回发,检查长度,在页面上写入一些信息。我不希望用户在回发之前看到任何内容(尤其是来自文本框的文本)。 现在我没有读者以及如何隐藏输入的方式,但我需要测试它。如果我能弄清楚如何在没有发送输入的情况下进行回发,那就更好了。
答案 0 :(得分:0)
在ASP.NET中有一个“可见”属性,但可能会禁用输入。也许你可以尝试一下。
您也可以将文字颜色设置为与背景颜色相同(透明) - 也值得一试。
我会在输入字段上设置HTML5密码属性。然后,用户可以看到输入,但不能看到他们输入的字符。
答案 1 :(得分:0)
所以我并不完全清楚你想要什么,但据我所知,这是一个解决方案:
使用CSS创建一个不可见的文本框。在提交按钮上,添加一个JS / jQuery函数,检查输入是否长度为六个字符,并且只有在这种情况下才执行回发 - 其他任何内容,函数将返回false
,并且页面不会后背部。
这是你的想法吗?
<强> ASP.Net 强>
<asp:Textbox runat="server" cssclass="invis"></asp:Textbox>
<asp:Button runat="server" Text="Submit" onClientClick="return checkSixChars();"></asp:Button>
<强> CSS 强>
.invis {
border: 0px;
color: transparent;
background: none;
outline: 0;
}
<强>的jQuery 强>
function checkSixChars() {
var $input = $(".invis").first();
if ($input.val().length == 6) {
return true;
}
return false;
}
答案 2 :(得分:0)
尝试执行以下操作:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
jQuery(function(){
$("#teste").keypress(function(event){
//console.clear();
//console.log(event);
$(this).val("");
$("#testeHidden").val($("#testeHidden").val() + event.key);
var value = $("#testeHidden").val();
if(value.length < 6)
return false;
$("#secretButton").click();
return false;
});
$("#viewer").click(function(){
alert($("#testeHidden").val());
});
$("#secretButton").click(function(){
console.log("I will post to the server the following value:");
console.log($("#testeHidden").val());
$("#testeHidden").val("");
});
});
</script>
<input type="text" id="teste" />
<input type="hidden" id="testeHidden" />
<input type="button" value="show" id="viewer" />
<input type="button" value="show" style="display:none" id="secretButton" />
&#13;
我希望它可以帮到你。