2012-10-11 91 views
1

我想用键盘输入数值。多属性选择器的动作jQuery

我的问题如下:键盘有一个按钮“接受”,我有几个文本字段,我想为每个文本字段添加一个不同的动作。我试图使用多个属性选择器,但不工作。

<input id="txt1" type="text" /> </br> 
<input id="txt2" type="text" /> </br> 
<input id="txt3" type="text" /> </br> 

$('input[type=text]').keyboard({ 
    layout: "num" 
}); 

$('.ui-keyboard').on('click', 'input[name="key_accept"]',function() { 
    alert('Accept button was clicked in text1'); 
    // do your stuff here 
}); 

您可以显示的例子在这个环节http://jsfiddle.net/Mils/W2xFX/25/

警报是对所有的文本字段,但我想每个文本不同的警报。

+0

要显示的文字是什么?每个人有什么不同? –

+0

我想为每个文本字段采取不同的行动 类似这样的内容:http://jsfiddle.net/Mils/W2xFX/26/ 但仅仅只有一个警报。例如,当我修改第二个文本字段时,我有这个提示“接受按钮被点击在text2中” – Mils

+0

嗯,这里有一个方法:http://jsfiddle.net/NK9me/但是你应该真的检查插件的文档,重新使用,看看他们是否能够以更好的方式提供原始输入。我不知道那是什么插件。你应该真的在问题中包含这些信息。 –

回答

1

由于您使用的组件不公开任何接受和取消事件,因此需要外部解决方案。例如,您可以将当前元素保存在焦点上,并在接受按钮事件中使用该元素。

演示:http://jsfiddle.net/W2xFX/27/

代码:

var currentKB = null; 
$('input[type=text]').focus(function() { 
    currentKB = this; 
    return true; 
}); 

$('input[type=text]').keyboard({ 
    layout: "num" 
}); 

$('.ui-keyboard').on('click', 'input[name="key_accept"]',function(e, x) { 
    alert('Accept button was clicked in ' + currentKB.id); 
    // do your stuff here 
}); 
+0

非常感谢! – Mils