2017-07-28 90 views
0

使用css添加了palceholder中的內容,但問題是當我在文本框中添加數據時,使用css添加的佔位符內容不是得到清除。在css中添加佔位符內容無法在輸入字段中輸入數據時清除文本

.applynowemail.contactemail:after { 
 
    content: '*'; 
 
    position: absolute; 
 
    color: #f00; 
 
    /* margin-top: -36px; 
 
    margin-left: 52px; */ 
 
}
<div class="applynowemail contactemail"> 
 
    <input type="email" class="form-control emails" id="email" name="email" value="<?php echo set_value('email');?>" placeholder="Email" required> 
 
</div>

+0

你在哪裏使用jQuery? – Luca

+0

@LucaKiebel我只用css在佔位符上添加astrick,而添加文本這個astrick符號沒有被清除 – user8001297

+1

我的問題是關於你標記爲「jquery」,而沒有你使用它的跡象 – Luca

回答

1

這裏有一個CSS唯一的解決辦法:

  1. 它需要.emails:valid + .required { display:none; }
  2. 的星號是在一個<span>元素

.required { 
 
    color: #f00; 
 
    position:absolute; 
 
    left:2px; 
 
} 
 
.applynowemail{ 
 
    position:relative; 
 
} 
 

 
.emails:valid + .required { display:none; }
<div class="applynowemail contactemail"> 
 
    <input type="text" class="form-control emails" id="email" name="email" value="Some Email" placeholder=" Email" required> 
 
    <span class="required">*</span> 
 
</div>

+0

Astrick應該在佔位符文本 – user8001297

+0

嗯,剛編輯。你最好的選擇是絕對定位它,並在佔位符中添加一些空格。祝你好運! – Miro

2

我看到你所標記jquery你的問題。

首先,你不能只用CSS來達到你想要的。

其次,jQuery不能更改/樣式pseudo-elements:after因爲它們不是DOM樹的一部分。

所以,你需要使用同樣的jQuery那麼當用戶時,你有絕對位置的元素,不使用的利潤率進入裏面的input

而且文字使用hide()方法隱藏它添加自定義*,但使用top right bottom left代替它們

編輯:編輯解決方案,檢查輸入的val.length以查看它是否爲空。因此,當用戶刪除他輸入的內容,該*將再次出現

見片斷如下

我改了一下你的HTML和CSS,但你可以修改它,只要你想

var input = $("input") 
 
$(input).before('<p class="star">*</p>') 
 
$(input).on("keyup", function() { 
 
    var val = $(input).val().length 
 
    if (val > 0) { 
 
    $('.star').hide() 
 
    } else { 
 
    $('.star').show() 
 
    } 
 
}) 
 
$(input).change(function() { 
 

 
})
p { 
 
    position: absolute; 
 
    color: #f00; 
 
    left: 0; 
 
    top: 0; 
 
    margin: 0; 
 
} 
 

 
.applynowemail.contactemail { 
 
    position: relative 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="applynowemail contactemail"> 
 
    <input type="email" class="form-control emails" id="email" name="email" placeholder="Email" required> 
 

 
</div>

+0

如果在文本框中輸入任何數據並清除astrick符號不顯示只有佔位符值出現 – user8001297

+0

我不明白。你能更清楚嗎?我的答案是這樣的:當用戶在輸入內輸入內容時,'*'消失,這就是你想要的,不是嗎? –

+0

是的,但你發佈的,如果我清除我輸入的值,然後佔位符應該看起來像以前的權利,但astrick不顯示在那 – user8001297

相關問題