Javascript js/jQuery将标签值移动到默认值
我想使用jQuery/js执行以下操作:Javascript js/jQuery将标签值移动到默认值,javascript,jquery,markup,Javascript,Jquery,Markup,我想使用jQuery/js执行以下操作: 获取表单输入的标签值 将这些标签作为值放在输入本身中 隐藏标签 很简单。因为我不想打字 $('firstname input').val('First Name'); $('lastname input').val('Last Name'); $('street input').val('Street'); $('city input').val('City'); 等等,如何从每个元素中提取标签并将其粘贴到该元素的输入框中 下面是HTML的一个略为缩写
$('firstname input').val('First Name');
$('lastname input').val('Last Name');
$('street input').val('Street');
$('city input').val('City');
等等,如何从每个元素中提取标签并将其粘贴到该元素的输入框中
下面是HTML的一个略为缩写的版本:
<form action="/" method="post" id="user-register-form" accept-charset="UTF-8">
<div>
<div id="customreg">
<div class="firstname">
<div class="form-item form-type-textfield form-item-first-name">
<label for="edit-first-name">
First Name
<span class="form-required" title="This field is required.">*</span> </label>
<input type="text" id="edit-first-name" name="first_name" value="" size="24" maxlength="128" class="form-text required" />
</div>
</div>
<div class="lastname">
<div class="form-item form-type-textfield form-item-last-name">
<label for="edit-last-name">
Last Name
<span class="form-required" title="This field is required.">*</span>
</label>
<input type="text" id="edit-last-name" name="last_name" value="" size="24" maxlength="128" class="form-text required" />
</div>
</div>
</div>
<input type="submit" id="edit-submit--3" name="op" value="Join!" class="form-submit" />
<input type="hidden" name="form_build_id" value="form-5DDdSC4UFk_YPJIfuJgMhC4215CYJneg9PBDdetJtDQ" />
<input type="hidden" name="form_id" value="custreg_user_register_form" />
</div>
</form>
名字
*
姓
*
查看HTML会有所帮助,但如果我们假设标签直接出现在输入之前,您可以这样做
$('#myForm label + input').val(function() {
return $(this).prev().text();
}).prev().hide();
$('#myForm label > input').val(function() {
var txt = $(this.parentNode).text();
this.previousSibling.data = "";
return txt;
}).unwrap();
使用如下所示的HTML
<form id="myForm">
<label>first</label><input><br>
<label>last</label><input><br>
<label>phone</label><input>
</form>
<form id="myForm">
<label>first<input></label><br>
<label>last<input></label><br>
<label>phone<input></label>
</form>
像这样处理HTML
<form id="myForm">
<label>first</label><input><br>
<label>last</label><input><br>
<label>phone</label><input>
</form>
<form id="myForm">
<label>first<input></label><br>
<label>last<input></label><br>
<label>phone<input></label>
</form>
首先
最后一次
电话
查看HTML会有所帮助,但如果我们假设标签直接出现在输入之前,您可以这样做
$('#myForm label + input').val(function() {
return $(this).prev().text();
}).prev().hide();
$('#myForm label > input').val(function() {
var txt = $(this.parentNode).text();
this.previousSibling.data = "";
return txt;
}).unwrap();
使用如下所示的HTML
<form id="myForm">
<label>first</label><input><br>
<label>last</label><input><br>
<label>phone</label><input>
</form>
<form id="myForm">
<label>first<input></label><br>
<label>last<input></label><br>
<label>phone<input></label>
</form>
像这样处理HTML
<form id="myForm">
<label>first</label><input><br>
<label>last</label><input><br>
<label>phone</label><input>
</form>
<form id="myForm">
<label>first<input></label><br>
<label>last<input></label><br>
<label>phone<input></label>
</form>
首先
最后一次
电话
如果您的标签
具有与输入
的ID匹配的属性,请使用以下方法:
$('input').val(function(){
return $('label[for=' + this.id + ']').hide().text();
});
$('input').each(function() {
var $this = $(this),
$label = $this.parent();
$this.val( $label.text() );
$label.replaceWith( $this );
});
这是小提琴:
如果将标签环绕在输入
上,请使用以下方法:
$('input').val(function(){
return $('label[for=' + this.id + ']').hide().text();
});
$('input').each(function() {
var $this = $(this),
$label = $this.parent();
$this.val( $label.text() );
$label.replaceWith( $this );
});
这里有一个问题:如果您的标签
具有与输入
的ID匹配的属性,请使用以下方法:
$('input').val(function(){
return $('label[for=' + this.id + ']').hide().text();
});
$('input').each(function() {
var $this = $(this),
$label = $this.parent();
$this.val( $label.text() );
$label.replaceWith( $this );
});
这是小提琴:
如果将标签环绕在输入
上,请使用以下方法:
$('input').val(function(){
return $('label[for=' + this.id + ']').hide().text();
});
$('input').each(function() {
var $this = $(this),
$label = $this.parent();
$this.val( $label.text() );
$label.replaceWith( $this );
});
这是一个难题:这将是最短的解决方案:
$('input').siblings('label').each(function(index){
var $this = $(this);
$this.hide();
$this.siblings('input').each(function(index){
$(this).val($($this[index]).text());
});
});
这将是最短的解决方案:
$('input').siblings('label').each(function(index){
var $this = $(this);
$this.hide();
$this.siblings('input').each(function(index){
$(this).val($($this[index]).text());
});
});
如果你更详细的话会有帮助吗?编辑听起来像是你想要文本字段中的占位符文本?如果是这样的话,我建议阅读HTML5的placeholder
属性,并辅之以jQuery占位符插件,以适应较老的浏览器。在几乎所有浏览器上,jQuery不是和HTML5占位符属性一样有效吗?我的意思是,如果他们支持HTML5,他们可能支持JavaScript,对吗?如果你更详细的话会有所帮助编辑听起来像你想要文本字段中的占位符文本?如果是这样的话,我建议阅读HTML5的placeholder
属性,并辅之以jQuery占位符插件,以适应较老的浏览器。在几乎所有浏览器上,jQuery不是和HTML5占位符属性一样有效吗?我的意思是,如果他们支持HTML5,他们可能支持JavaScript,对吗?别忘了函数中需要一个return语句,它才能工作。别忘了函数中需要一个return语句,它才能工作。注意:unwrap
将保留标签文本。@JosephSilber:是的,我忘了这一点。我修正了它以删除文本。谢谢。:)注意:unwrap
将保留标签文本。@JosephSilber:是的,我忘记了。我修正了它以删除文本。谢谢。:)