2015-02-23 141 views
-1

我正在嘗試爲我的頁面上的窗體實現浮動標籤。浮動佔位符

我引用了幾個來源,並在codepen和Fiddle中遇到了這個鏈接。

我可以實現這一點,但這些方法需要重新做所有的形式,我需要換行輸入字段在一個div或者一個字段,並添加標籤。有沒有辦法做到這一點,使用jQuery和直接定位佔位符?

我明白問題是非常高的水平。我很抱歉。

+0

http://codepen.io/iamjordanlittle/pen/AHdfn – user3861559 2015-02-23 19:47:11

回答

1

我在這裏有一個jQuery爲你解決 - 所有它需要的是你添加一個「佔位符=‘placeHolderTextGoesHere’」屬性,每個表單元素。

$("input").each(function(e){ 

    $(this).wrap('<fieldset></fieldset>'); 
    var tag = $(this).attr("placeholder"); 
    $(this).attr("placeholder",""); 
    $(this).after('<label for="name">'+tag+'</label>'); 
}); 

我們正在做的是找到所有的投入 - 在一個字段包裝它們,然後添加一個標籤後 - 我們使用佔位符標記爲回退的沒有,JS的遊客,並將其設置爲「」如果JS在獲得其價值後被允許。

$("input").each(function(e) { 
 
    $(this).wrap('<fieldset></fieldset>'); 
 
    var tag = $(this).attr("placeholder"); 
 
    //var tag= $(this).data("tag"); 
 
    $(this).attr("placeholder", ""); 
 
    $(this).after('<label for="name">' + tag + '</label>'); 
 
}); 
 

 
$('input').on('blur', function() { 
 
    if (!$(this).val() == "") { 
 
    $(this).next().addClass('stay'); 
 
    } else { 
 
    $(this).next().removeClass('stay'); 
 
    } 
 
});
* { 
 
    box-sizing: border-box; 
 
} 
 
body { 
 
    background: #eee; 
 
} 
 
form { 
 
    background: #fff; 
 
    padding: 2em; 
 
    width: 30em; 
 
    margin: 5em auto; 
 
    border-radius: 4px; 
 
    box-shadow: 0 1px 2px rgba(0, 0, 0, .25); 
 
} 
 
fieldset { 
 
    border: none; 
 
    position: relative; 
 
    font-family: arial, sans-serif; 
 
} 
 
input { 
 
    width: 20em; 
 
    padding: 1em 1em .8em 1em; 
 
    width: 100%; 
 
    font-size: 1.2em; 
 
    border: 1px solid #aaa; 
 
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, .15); 
 
    border-radius: 2px; 
 
} 
 
input:focus { 
 
    outline: none; 
 
    background: #fbfbe9; 
 
} 
 
input + label { 
 
    display: block; 
 
    cursor: text; 
 
    color: #777; 
 
    transition: .15s ease-out all; 
 
    position: absolute; 
 
    top: 1.8em; 
 
    left: 2.3em; 
 
} 
 
input:focus + label, 
 
label.stay { 
 
    top: 1em; 
 
    left: 3em; 
 
    font-size: .7em; 
 
    font-weight: bold; 
 
    color: #139dd7; 
 
    transition: .15s ease-out all; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<form> 
 
    <input type="text" placeholder="name" name="" id="name" /> 
 
    <input type="text" placeholder="email" name="" id="email" /> 
 
</form>

+0

感謝是很接近我想要以最小的變化exisitng代碼(CSS的字段集類)。謝謝。 – user3861559 2015-02-23 20:36:37