下面给出的是一部分代码,该代码通过html动态加载表行。表格行具有一个文本框,该文本框从变量“ currentValue”获取其值。但是,如果“ currentValue”的内容之间有一个空格,则仅显示第一个单词。文本框中不显示空格(在下面的代码中,仅显示“ hello”)。除了通过单独的javascript查询设置值以外,请提出其他解决方案。
currentValue = 'hello world';
tr.append("<td><input id="+ textBoxId1 + " class='MyTextBox1' type='text' name='parameter_label' value="+ currentValue +" maxlength="+stringMaxLength+"></input></td>");
最佳答案
考虑一下您正在生成的HTML。假设currentValue
具有"something here"
:
<td><input id=someid class='MyTextBox1' type='text' name='parameter_label' value=something here maxlength=40</input></td>
<!-- Notice ---------------------------------------------------------------------^^^^^^^^^^^^^^ -->
现在应该清楚问题出在哪里(还有另外两个问题):您没有在
value
属性值周围加引号。仅当值没有空格(或其他几个字符)时才有效。 More in the specification.所以我们添加它们:
tr.append("<td><input id="+ textBoxId1 + " class='MyTextBox1' type='text' name='parameter_label' value='"+ currentValue +"' maxlength="+stringMaxLength+"</input></td>");
// Note -----------------------------------------------------------------------------------------------^------------------^
假定
currentValue
中永远不会包含'
。如果可能,可以改用"
:tr.append("<td><input id="+ textBoxId1 + " class='MyTextBox1' type='text' name='parameter_label' value=\""+ currentValue +"\" maxlength="+stringMaxLength+"</input></td>");
// Note -----------------------------------------------------------------------------------------------^^------------------^^
假设
currentValue
永远不会包含"
,或者您已经正确地准备好currentValue
(要处理所有属性,必须将<
和&
变成实体,在这种情况下, "
转换为"
)。其他两个问题是:
您在
>
元素上缺少结尾的<input ...>
。删除
</input>
。 input
元素是空元素,它们从不包含结束标记。所以:
tr.append("<td><input id="+ textBoxId1 + " class='MyTextBox1' type='text' name='parameter_label' value='"+ currentValue +"' maxlength="+stringMaxLength+"></td>");
关于javascript - 通过javascript加载html时,文本框值不考虑空间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33062078/