在新字段中设置值的空格后丢失文本
Losing text after a space setting the value in a new field
我在使用Javascript创建新字段时遇到了一个奇怪的问题。我有一个按钮,当点击时,将创建两个文本字段。我给这些文本字段一个字符串作为值。然而,只有当我给它一个不带空格的字符串时,它才能正常工作。如果我的字符串包含空格,那么它会使值等于出现空格之前的文本。
function nameField() {
$('#nameArea').html("<br/>First Name:<input type='text' id='fnField' value=" + $('#firstName').text() + ">Last Name:<input type='text' id='lnField' value=" + $('#lastName').text() + "></input><button id='bName' onclick='updateName(fnField.value, lnField.value)'>Save Changes</button>");
$('#firstName').html("");
$('#lastName').html("");
}
因此,例如,如果firstName值为David E
,则它当前仅将David
作为值放入字段中。但是,我已经使用了alert,并且可以确认$('#firstName').text();
确实包含完整的David E
。如何确保空格后的文本不会被剪切掉?
问题是因为value
周围没有任何字符串分隔符。注意本例中属性值周围的双引号("
):
$('#nameArea').html('<br/>First Name:<input type="text" id="fnField" value="' + $('#firstName').text() + '">Last Name:<input type="text" id="lnField" value="' + $('#lastName').text() + '"></input><button id="bName" onclick="updateName(fnField.value, lnField.value)">Save Changes</button>');
或者,您可以通过使用Template Literal来完全避免字符串串联,但请注意,这在IE中是不受支持的。
$('#nameArea').html(`<br/>First Name:<input type="text" id="fnField" value="${$('#firstName').text()}">Last Name:<input type="text" id="lnField" value="${$('#lastName').text()}"></input><button id="bName" onclick="updateName(fnField.value, lnField.value)">Save Changes</button>`);
最后,您可以通过删除onclick
属性并使用不引人注目的事件处理程序来进一步整理此HTML。可以使用data
属性来包含元素所需的元数据。
这是一个逻辑错误,原因是您给出的值周围缺少引号。
您将html设置为value=First Lastname
,而不是value='First Lastname'
。在第一种情况下,大多数浏览器解析字符串直到出现空白,因此只显示名字。
尝试
$('#nameArea').html("<br/>First Name:<input type='text' id='fnField' value='" + $('#firstName').text() + "'>Last Name:<input type='text' id='lnField' value='" + $('#lastName').text() + "'></input><button id='bName' onclick='updateName(fnField.value, lnField.value)'>Save Changes</button>");
相关文章:
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 当没有文本输入聚焦时检测空格键按下
- 如何忽略单词like“”中的未使用空格;测试-文本”;同时构建html标签
- 我想限制用户在jquery中输入文本后面的空格,如果它在文本后面,我会删除空格
- 将空格添加到文本区域
- 从空格分隔的文本创建和实现数组:AngularJS
- 使值为所有空格的文本框无效
- 我如何用空格分解文本,但如果它'It’太长了
- 文本区域字符限制和空格修剪
- 以编程方式触发空格键单击文本区域
- 防止使用 jQuery 在 HTML 文本框中键入空格
- 如何在用户写入文本和按空格后替换表情符号
- 如何在文本节点中保留空格
- 获取标签文本并将其设置为输入值[为什么输入值只获取空格前的文本?
- 删除可内容可编辑属性时删除的文本空格
- 文本之间的空格,但文本前后不空格
- JQuery 字符限制器,同时忽略文本区域中的空格
- 如何单击文本区域,然后使用 jquery 按空格键
- 根据类添加空格以保存文本文件