我想在页面执行后输入li。我希望li函数接近word office格式。我的意思是,当我们在第一个列表上写入然后输入它时,它将集中在第二个列表等等。这是我之前制作的代码:
$('input#ingred').on('keydown',function(e){
if(e.which == 13) {
$('ol').append('<li><input class="formxyz globalwrite" id="ingred" name="ingred" placeholder="ingredients"></input></li>');
$('input#ingred').focus();
}
});
这是ajax中的脚本
Declare Function SCardListReaders Lib "winscard.dll" Alias "SCardListReadersA" ( _
ByVal phContext As Integer, _
ByVal mszGroups As String, _
ByVal mszReaders As String, _
ByRef pcchReaders As Integer _
) As Integer
Sub GetReaders()
Dim RetVal As Integer
Dim Readers As String
Dim ReadersStrLength As Integer
Debug.Print "GetReaders"
RetVal = SCardListReaders(0, "", Readers, ReadersStrLength)
Debug.Print "Returns = " & RetVal & ", Readers = " & Chr(34) & Readers & Chr(34) & _
" Length = " & ReadersStrLength
RetVal = SCardListReaders(0, "", Readers, ReadersStrLength)
Debug.Print "Returns = " & RetVal & ", Readers = " & Chr(34) & Readers & Chr(34) & _
" Length = " & ReadersStrLength
End Sub
Sub GetReaders2()
Dim RetVal As Integer
Dim Readers As String * 50
Dim ReadersStrLength As Integer
Debug.Print "GetReaders2"
RetVal = SCardListReaders(0, "", Readers, ReadersStrLength)
Debug.Print "Returns = " & RetVal & ", Readers = " & Chr(34) & Readers & Chr(34) & _
" Length = " & ReadersStrLength
RetVal = SCardListReaders(0, "", Readers, ReadersStrLength)
Debug.Print "Returns = " & RetVal & ", Readers = " & Chr(34) & Readers & Chr(34) & _
" Length = " & ReadersStrLength
End Sub
当我运行此代码并在第1行写入然后按ENTER键时,第二个li显示出来。但是当我在第二个li中写入并按下回车键时,没有附加内容。当我按下ENTER键时,如何使此追加功能连续工作?
答案 0 :(得分:1)
您不能重复使用ID值 - 它不是有效的HTML,并且输入元素的选择器将无法正常工作。使用类也是如此,即使它有多次使用类是有效的,选择将选择所有匹配的元素。您需要生成唯一ID,或使用其他选择器来选择最后一个输入元素,例如jquery .last()
选择器。
答案 1 :(得分:0)
如果有两个同名的ID选择器,jQuery只选择第一个。
答案 2 :(得分:0)
您应该使用委托方法绑定keydown事件,如下所示:
改变这个:
$('input#ingred').on('keydown',function(e) {
进入这个:
$(document.body).on('keydown','input#ingred',function(e) {
因为第一种语法不会绑定到稍后(动态)创建的元素。
<强>更新强>
要获得更正确的方法,您应该将其绑定到class
或name
属性而不是id
,因为id
id最初用于命名元素并且应该是唯一的。
我认为这是你需要的正确方式:D
$(document.body).on('keydown','input.formxyz',function(e) {
或:
$(document.body).on('keydown','input[name="ingred"]',function(e) {