[英]input type password value?
你好,我有以下問題的問題:
我有兩個輸入字段。 一個用於登錄用戶名ie,另一個用於密碼。 現在我想設置兩個字段的值。 我的問題是密碼。 我打算意識到以下幾點:
HTML:
<input
type="text"
id="log_password"
name="log_password"
value="<?php echo ($log_password);?>"
onfocus="if(this.value=='Password')this.value='';this.type='password'"
onblur="if(this.value=='') this.value=this.defaultValue;"/>
PHP:
$log_password = "Password";
if(isset($_POST['submit'])){
$log_password = $_POST['log_password'];
if(empty($log_password)){
$errors['log_password'][]="No password given";
$_POST['log_password'] = "Password";
$log_password = $_POST['log_password'];
}
}
問題是,這可以提交表單。 如果出現錯誤,由於type="text"
標簽,密碼再次可見。 所以我怎么能解決這個問題,如果有人可以幫助我,我真的很感激。 非常感謝。
更新:
<div class="small2">
<?php if (!isset($errors['log_password'])):?>
<input
type="<?= $passwordVal == "" ? "text" : "password" ?>"
id="log_password" name="log_password"
value="<?php echo ($log_password);?>"
placeholder="Passwort"
onfocus="if(this.value=='Passwort')this.value=''"
onblur="if(this.value=='') this.value=this.defaultValue;"/>
<?php endif;?>
<?php if (isset($errors['log_password'])):?>
<input class="log-err"
type="<?= $passwordVal == "" ? "text" : "password" ?>"
id="log_password" name="log_password"
value="<?php echo ($log_password);?>"
placeholder="Passwort"
onfocus="if(this.value=='Passwort')this.value=''"
onblur="if(this.value=='') this.value=this.defaultValue;"/>
<?php endif;?>
</div>
采用
<input type="password" placeholder="Password" ... />
如果你必須將它用作文本字段(為了顯示“密碼”),你應該使輸入類型有條件:
<?php
// in case of error, the value that the user entered will be passed back via GET (POST?)
$passwordVal = isset($_GET['log_password']) ? $_GET['log_password'] : "";
?>
<!-- if ($passwordVal) is an empty string, type is "text", else type is "password". -->
<input type="<?= $passwordVal == "" ? "text" : "password" ?>" ... />
正如Matt正確建議的那樣,您可以使用占位符標記。
但是為了讓占位符工作,你不能設置“價值”。 解決方案當然是使用條件類型,或者使用jQuery框架。 你可以這樣做..
<?
$your_pass = 'bla-bla-bla';
?>
<!DOCTYPE html>
<html>
<head>
<title>Test page</title>
<!-- Load jQuery library from Google repository -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
<form action="#">
<input type="password" name="log_password" id="log_password" />
</form>
</body>
<script>
$(document).ready(function() {
/* execute this by jQuery when document is ready */
/* must use traditional javascript to change input's type attribute */
document.getElementById('log_password').setAttribute('type', 'text');
/* set empty value attribute of input with id "log_password" */
$('input#log_password').attr('val','');
/* set placeholder attribute */
$('input#log_password').attr('placeholder','Password');
$('input#log_password').focus(function(){
/* when input with id log_password is focus.. */
$(this).attr('placeholder','');
/* set the value as you prefer... */
$(this).val('<?=$your_pass?>');
/* reset type of input to password */
document.getElementById('log_password').setAttribute('type', 'password');
});
});
</script>
</html>
我想,如果有錯誤,你需要從'text'到'password'的更改類型
編寫您認為是函數的代碼,然后通過加載頁面,焦點事件和模糊事件來調用它。 Matt的解決方案很不錯,但我認為它僅限於HTML5支持的瀏覽器。
文檔上的腳本如何准備檢查log_password值是否為密碼並更改類型。
哦對不起,請看deste的帖子+1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.