我有几个使用PHP动态创建的表单。我想在每个表单上列出所有必填字段。
应该如下所示:
<div class="mandatory_list">Mandatory fields: first name, email</div>
<form>
<label>first name*</label><input type="text" />
<label>last name</label><input type="text" />
<label>email*</label><input type="text" />
<label>comments</label><input type="text" />
</form>
如果它可以简化事情,我也可以给所有强制性标签一个单独的类。我走到这一步:
<script>
var mandatory= ( $("label:contains('*')").text() );
$('#mandatory_list').html("Mandatory fields: " + mandatory);
</script>
这给了我以下输出:“必填字段:名字*电子邮件*”。所以这意味着我必须用逗号代替所有的星号。可能有更好的方法来解决这个问题。
答案 0 :(得分:1)
你可以这样做:
var mandatory= ( $("label:contains('*')").text().split('*').join(', ') );
$('#mandatory_list').html("Mandatory fields: " + mandatory);
答案 1 :(得分:0)
我认为在强制字段上使用类更容易,但这只是选择器的首选项:
:首先,删除列表中的额外文本并添加类:
<div class="mandatory_list">Mandatory fields:</div>
<form>
<label class='mandatory'>first name*</label><input type="text" />
<label>last name</label><input type="text" />
<label class='mandatory'>email*</label><input type="text" />
<label>comments</label><input type="text" />
</form>
现在填充列表,删除指定的最后一个逗号:
var myList = $('.mandatory_list').text();
$('.mandatory').each(function() {
myList += ' ' + $(this).text().replace('*', ',');
});
myList = myList.slice(0, myList.length - 1);
$('.mandatory_list').text(myList);
编辑:改编为“多种形式”
$('form').each(function() {
var myHeader = $(this).prev('.mandatory_list');
var myList = myHeader.text();
$(this).find('.mandatory').each(function() {
myList += ' ' + $(this).text().replace('*', ',');
});
myList = myList.slice(0, myList.length - 1);
myHeader.text(myList);
});