我在jquery中寫了一個佔位符函數,它工作正常,但是當這個字段爲空時,它實際上佔有了佔位符的值。我在函數之外解決了它,我在提交時在sendForm()函數中檢查它。但我想在佔位符函數內解決它,使它適用於所有情況。 下面是代碼:jquery佔位符函數:當輸入爲空時,佔位符值被髮送
jquery的佔位符:
$(":input[data-placeholder]").each(function(index){
if ($(this).val() == "")
{
$(this).val($(this).data("placeholder"));
$(this).addClass("placeholder");
}
}).live("focus",function(){
//check if the field not filled
if($(this).hasClass("placeholder"))
{
$(this).removeClass("placeholder");
$(this).val("");
}
}).live("blur",function(){
if($(this).val()=="")
{
$(this).val($(this).data("placeholder"));
$(this).addClass("placeholder");
}
});
HTML:
<form name="forme" method="post" onsubmit="return sendForm();">
<div id="fields">
<input type="text" name="userName" id="userName" data-placeholder="שם מלא"/>
<input type="text" name="userPhone" id="userPhone" data-placeholder="טלפון"/>
<input type="text" name="userMail" id="userMail" data-placeholder='דוא"ל'/>
<!--<textarea name="userMail" id="userMail" data-placeholder='דוא"ל'></textarea>-->
</div>
<input type="submit" id="submit" value="הרשמה">
</form>
sendForm():
function sendForm(){
var uname, uphone, umail;
$("#userName").hasClass("placeholder") ? uname="" : uname=$("#userName").val();
$("#userPhone").hasClass("placeholder") ? uphone="" : uphone=$("#userPhone").val();
$("#userMail").hasClass("placeholder") ? umail="" : umail=$("#userMail").val();
var dataObject = {name: uname, phone: uphone, mail: umail};
if(validate(uname,uphone,umail))
{
你必須支持哪些瀏覽器?也許你可以使用[placeholder](http://www.w3schools.com/html5/att_input_placeholder.asp)屬性。 – Simon