Javascript Jquery-联系人字段交互

Javascript Jquery-联系人字段交互,javascript,jquery,html,css,Javascript,Jquery,Html,Css,嘿,伙计们,我正在尝试创建内容场交互。当我们点击标签文本应该向上的任何字段时,我尝试了,但没有成功,为了更加清晰,我也修改了代码。你们能帮帮我吗?谢谢:) $('.form grid').keyup(函数(){ if($(this.val()){ $(this.addClass('active'); }否则{ $(this.removeClass('active'); } }); 。形成网格{ 最大宽度:200px; 位置:相对位置; 边缘底部:25px; } .形成网格输入, .形成网格文本

嘿,伙计们,我正在尝试创建内容场交互。当我们点击标签文本应该向上的任何字段时,我尝试了,但没有成功,为了更加清晰,我也修改了代码。你们能帮帮我吗?谢谢:)

$('.form grid').keyup(函数(){
if($(this.val()){
$(this.addClass('active');
}否则{
$(this.removeClass('active');
}
});
。形成网格{
最大宽度:200px;
位置:相对位置;
边缘底部:25px;
}
.形成网格输入,
.形成网格文本区域{
高度:50px;
宽度:100%;
边界:无;
边框底部:1px实心#000000;
}
.表格网格标签{
位置:绝对位置;
排名:0;
左:0;
保证金:0;
}
.form-grid.active标签{
顶部:-15px;
}

名称
电子邮件
电话
消息

这是因为代码中的
$(this)
元素实际上指的是
div.form-grid
节点,该节点没有附加值。您需要的是选择嵌套的input/textarea元素,即
$(this).find('input,textarea')。first().val()

见下面的概念证明:

$('.form grid').keyup(函数(){
if($(this).find('input,textarea').first().val()){
$(this.addClass('active');
}否则{
$(this.removeClass('active');
}
});
。形成网格{
最大宽度:200px;
位置:相对位置;
边缘底部:25px;
}
.形成网格输入,
.形成网格文本区域{
高度:50px;
宽度:100%;
边界:无;
边框底部:1px实心#000000;
}
.表格网格标签{
位置:绝对位置;
排名:0;
左:0;
保证金:0;
}
.form-grid.active标签{
顶部:-15px;
}

名称
电子邮件
电话
消息

为每个输入添加类,以处理标签标签

<div class="form-grid">
  <textarea></textarea>
  <label for="text_input"> Message </label>
</div>

试试这个方法。

试试这个方法,效果很好

$('.form-grid').on("input", function() {
         $('.form-grid').removeClass('active');
        $(this).addClass('active');

});

您应该只使用web框架。下面是一个示例:这是问题的一部分,另一部分是他希望标签向上。单击()并使用.keyup()。@Coder95更新了我的答案,我忘了你有一个
元素。我还建议了一个更好的方法。@Coder95我的错,现在修复了代码。使用
$(this).find('input,textarea').first().val()
什么也没有发生。我不知道为什么:(@Coder95检查我答案中的代码演示(隐藏的和显示的),它们都有效。
  $('label[for="text_input"]').hide() 
$('.form-grid').on("input", function() {
         $('.form-grid').removeClass('active');
        $(this).addClass('active');

});