在JavaScript中隐藏一个空文本框
Hide an empty textbox in JavaScript
我希望函数removeRow()
检查HTML文本框是否为空,如果为空,则将其显示设置为"none"(隐藏它)。我还有这个function funcTest()
,它检查文本框是否已填充,以及是否为&;未超过允许的最大行数,则将显示设置为"(使其可见)。提前谢谢。如果我没有以正确的格式为StackOverflow输入所有内容,我深表歉意。我以前从来没有问过这个问题。感谢所有的帮助;我盯着这个看的时间比我愿意承认的要长。
HTML
<table width="650" border="0" cellpadding="2" cellspacing="2" class="table_border">
<tr class="blacktext9">
<td>
<table align="center">
<button id="testbutton" name="testbutton" onclick="funcTest();return false;">Test</button>
<button id="testbuttonRemove" name="testbuttonRemove" onclick="removeRow()">Remove empty rows</button>
<input type="hidden" id="last_row" name="last_row" value=1 />
<tr id="rowToDisplay1" >
<td>
ID:
<input id="testId1" name="testId1" type="text" />
</td>
</tr>
<tr id="rowToDisplay2" style="display: none">
<td>
ID:
<input id="testId2" name="testId2" type="text" />
</td>
</tr>
<tr id="rowToDisplay3" style="display: none">
<td>
ID:
<input id="testId3" name="testId3" type="text" />
</td>
</tr>
<tr id="rowToDisplay4" style="display: none">
<td>
ID:
<input id="testId4" name="testId4" type="text" />
</td>
</tr>
<tr id="rowToDisplay5" style="display: none">
<td>
ID:
<input id="testId5" name="testId5" type="text" />
</td>
</tr>
</table>
</td>
</tr>
</table>
JS
function removeRow() {
var r = myMAX_ROWS;
for (r; r <= myMAX_ROWS; r--) {
if ((document.getElementById('testId' + r).value == '') && (document.getElementById('rowToDisplay' + r).style.display = '')) {
document.getElementById('rowToDisplay' + r).style.display = 'none';
}
}
}
function funcTest () {
var LASTROW = document.getElementById('last_row').value;
//myMAXROWS currently set to 3
if(LASTROW < myMAX_ROWS && document.getElementById('testId' + LASTROW).value != '') {
LASTROW++;
document.getElementById('rowToDisplay'+LASTROW).style.display = '';
document.getElementById('last_row').value = LASTROW;
}
只需检查文本框值的长度,如果为空则隐藏:
(不过,不确定你为什么要这样做,因为如果隐藏的话,你将无法访问隐藏的文本框来添加输入)
jQuery示例:
$("#textBox").on("keydown", function () {
if ($(this).val().length <= 0) {
$(this).hide();
}
else {
log("TEXTBOX IS NOT EMPTY");
$(this).show();
}
});
看起来,如果你想这样做,并且没有jQuery,我会向你展示你的问题。您正在使用
.value == ''
.style.display = ''
这些值可以为null或为空,这可能就是您遇到问题的原因。
请尝试这个:
.value.length < 1
.style.display.length < 1
相反,希望它对你有效
我已经创建了一个Fiddle(单击此行)供您查看
首先,您有一个无限循环,这里是:
var r = myMAX_ROWS;
for (r; r <= myMAX_ROWS; r--) {
由于您将r分配给myMAX_ROWS,并且您正在递减r,因此r将始终<=myMAX_ROWS。你可能想要
var r = myMAX_ROWS;
for (r; r >= 0; r--) {
此外,"不是"display"的有效CSS值。但是,"none"是。将您的显示设置更改为:
document.getElementById('rowToDisplay'+LASTROW).style.display = 'none';
将display设置为"none"以隐藏它,将其设置为"inline block"或"block"以显示它(取决于页面的布局)。使用jQuery:,这要容易得多
$("#elementID").show();
$("#elementID").hide();
相关文章:
- 使用javascript将两个文本框值相加到表中的另一个文本框中
- 在文本上方标记另一个文本
- 如何通过 JS 将内容从一个表单中的一个文本框复制到另一个表单中的另一个文本框
- 使用Javascript从一个文本区域逐行解析.subsr(0,6)到另一个文本区
- 任何编写文本文件并将其替换为上一个文本文件的方法
- html或java脚本代码在硬盘中创建一个文本文件
- 当用户单击按钮(在光标位置)时,在输入字段中添加一个文本字符串
- 一个文本框,其中两个选项的值不同
- 在javascript中获取servlet值,并使用ajax将该值分配给一个文本框
- 如何从由“”分隔的字符串中提取最后一个文本|&”;
- 如何使用jquery对具有相同类的文本框的值求和并将其放入另一个文本框中
- 使用 jquery 将行值设置为另一个文本
- 从一个文本框执行代码,并在另一个文本框中以 HTML 显示输出
- 如何将文本插入到几个带有 id 的文本区域中的一个文本区域中
- 如何使用jQuery查找下一个文本区域
- jquery专注于asp.net mvc部分视图中的一个文本框
- 将数组中的数据作为段落添加到一个文本区域
- 当你有很多文本框时,如何从一个模态中只填充一个文本框
- Javascript/Php聊天-输入is'不能在一个文本框中工作
- 当文档准备就绪时,将数据从一个文本框复制到另一个