0

我想在附加模板后选择第一个输入(类是时间)。

这个怎么做?

$.get('@Url.Action("Bonus")', function (template) {
                $("#bonuses").append(template);
                // I would like focused first input in template $(template).first().focus();
            });

模板中的html:

<input autocomplete="off" name="BonusList.Bonuses.Index" type="hidden" value="3c6f7b63-cc96-4971-a5b5-2e4640ca97e5" />
<input class="time" id="BonusList_Bonuses_3c6f7b63-cc96-4971-a5b5-2e4640ca97e5__ID" name="BonusList.Bonuses[3c6f7b63-cc96-4971-a5b5-2e4640ca97e5].ID" type="hidden" value="0" /> 

3c6f7b63-cc96-4971-a5b5-2e4640ca97e5 - 是随机 GUID

重要的是#bonuses 在此附加之前有很多输入

4

3 回答 3

0

您可以使用以下代码段

$(template).find('input:first').focus();

如果您的第一个输入不是文本类型,并且您只需要关注第一个文本类型输入,请改用下面的代码

$(template).find('input[type=text]:first').focus();
于 2013-01-23T13:34:54.470 回答
0

您不能更改输入的类型,因此,可以使用 CSS 类(在您的模板中)隐藏它,然后您可以显示它。(参考:使用 jQuery 更改输入字段的类型

<input autocomplete="off" name="BonusList.Bonuses.Index" type="text" class="iamhidden" value="3c6f7b63-cc96-4971-a5b5-2e4640ca97e5" /><input id="BonusList_Bonuses_3c6f7b63-cc96-4971-a5b5-2e4640ca97e5__ID" name="BonusList.Bonuses[3c6f7b63-cc96-4971-a5b5-2e4640ca97e5].ID" type="text" class="iamhidden" value="0" /> 

CSS:

.iamhidden{display:none;}

和选择器:找到两个输入中的第一个,假设它们是附加的最后两个,删除隐藏类,然后聚焦它(最后一个的下一个):

$('#bonuses').find('input:last').prev().removeClass("iamhidden").focus();

我放了一个非常简化的小提琴来展示这个逻辑工作:http: //jsfiddle.net/seAxW/

编辑:为了反映您的评论,请关注“时间”类(您仍然需要 CSS 并键入文本)

$('#bonuses').find('input.time:last').removeClass("iamhidden").focus();

添加了隐藏类:只需在“时间”和“iamhidden”类之间放置一个空格,您就可以

<input autocomplete="off" name="BonusList.Bonuses.Index" type="hidden" value="3c6f7b63-cc96-4971-a5b5-2e4640ca97e5" />
<input class="time iamhidden" id="BonusList_Bonuses_3c6f7b63-cc96-4971-a5b5-2e4640ca97e5__ID" name="BonusList.Bonuses[3c6f7b63-cc96-4971-a5b5-2e4640ca97e5].ID" type="text" value="0" />
于 2013-01-23T14:01:35.943 回答
-1

你试过这个吗?

$.get('@Url.Action("Bonus")', function (template) {
    $("#bonuses").append(template);
    $("#bonuses").find('input:first').focus();
});
于 2013-01-23T13:34:01.843 回答