0

我有几个使用 PHP 动态创建的表单。我想列出每个表格上方的所有必填字段。

t 应如下所示:

<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>

这给了我以下输出:“必填字段:名字*电子邮件*”。所以这意味着我必须用逗号替换所有星号。可能有更好的方法来解决这个问题。

4

2 回答 2

1

你可以做:

var mandatory= ( $("label:contains('*')").text().split('*').join(', ') );
$('#mandatory_list').html("Mandatory fields: " + mandatory);
于 2012-06-04T14:22:38.577 回答
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);
});
于 2012-06-04T15:01:03.877 回答