我有一个表,用户可以在其中添加行,但每行都有编号。现在,用户在实际开始添加行之前,在文本框中输入他/她想要添加的行数。下面是代码,如果已添加的行数超过用户输入的行数,则会停止添加行。
if (qnum > <?php echo (int)@$_POST['textQuestion']; ?>) {
return;
}
示例:如果用户在文本框中输入数字5,则用户只能添加5行,如果用户尝试添加另一行,则不会添加任何行,因为用户无法添加超过5行。
我的问题是,如果用户已经达到了他们添加的最大行数,那么我希望它禁用textarea(用户无法在textarea中单击,我想给它正确的颜色这样你就可以告诉textarea被禁用了)。我还想禁用一个超链接,以便用户无法点击超链接(再次适当的颜色更改,以便用户可以告诉超链接被禁用)有谁知道如何做到这一点?
下面是hyperling和textarea的代码:
<table id="question">
<tr>
<th colspan="2">
Question Number <span id="questionNum">1</span>
</th>
</tr>
<tr>
<td rowspan="3">Question:</td>
<td rowspan="3">
<textarea id="questionTextArea" rows="5" cols="40" name="questionText"></textarea>
<span href="#" class="link">[Question link]</span>
</td>
</tr>
</table>
Jquery代码显示如何添加表行的示例:
function insertQuestion(form) {
var questionarea=(form.questionText.length)
? form.questionText[0]
: form.questionText;
var context = $('#optionAndAnswer');
var currenttotal = context.find('.answerBtnsOn').length;
alertErrors = "";
// Note, this is just so it's declared...
if (questionarea.value == ""){
if (qnum > <?php echo (int)@$_POST['textQuestion']; ?>) {
return;
}
var $tbody = $('#qandatbl > tbody');
var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
var $qid = $("<td class='qid'>" + qnum + "</td>");
$tr.append($qid);
$tbody.append($tr);
}
将表行添加到的Html表:
<table id="qandatbl" align="center">
<thead>
<tr>
<th class="qid">Question No</th>
</tr>
</thead>
<tbody></tbody>
</table>
看看这个jsfiddle例如here,您可以使用textarea在顶部写一个问题,当您完成后,然后单击按钮将其添加到新行中。它是我想要在行数达到限制时禁用的顶级文本区域。
答案 0 :(得分:0)
您是通过JavaScript / Ajax还是在页面加载时添加行?
如果前者(我猜你的第一个代码示例说明),使用JavaScript计数器来表示行数,当它们触发添加行功能(你写的)时,先检查一下这个数字;警报和禁用相应:
jQuery允许你禁用表单元素,只需用链接文本(即减去标签)替换链接,并使用$(ele).css()调用或通过包装来修改它的颜色在span标签中。
如果是后者,您可以通过PHP编写textarea,并将disabled =“disabled”属性添加到开始标记中。链接:使用与上面相同的方法(将其包装在span标记中,而不是标记)。
// To disable
$('.someElement').attr('disabled', 'disabled');
// To enable
$('.someElement').removeAttr('disabled');
显然,您需要包含jQuery框架。我通常使用Google的https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js。