0
我面臨着一個奇怪的行爲(我不是一個javascript guru :-()。我想使用typeahead進行自動完成,對我來說工作正常。 。各種形式的字段,其中我想啓用/禁用此表格組件的事件也能正常工作之外的所有預輸入的輸入框Typeahead得到的ID結果爲undefined
我有什麼:
HTML - 摘錄:
<div class="row detailRow">
<div class="col-md-4">
<label id="lblAuszubildender" class="detailLabel">Auszubildender:</label>
</div>
<div class="col-md-7 col-md-offset-1">
<input id="txtAuszubildender" name="txtAuszubildender" class="typeahead form-control detailValue" placeholder="Auszubildender" />
...
// Instantiate the Typeahead UI
$('#txtAuszubildender').typeahead(
{
hint: true,
highlight: true,
minLength: 3
},
{
displayKey: 'value',
source: apprenticeEngine.ttAdapter()
});
JavaScript代碼段:
$(".detailRow").each(function(){
var labelElement = $(this).find(".detailLabel");
var valueElement = $(this).find(".detailValue");
var labelId = labelElement.attr('id');
var valueId = valueElement.attr('id');
filterArray[labelId] = valueId;
});
調試時,所有元素的JavaScript的正常工作,只有預輸入輸入框不`噸給他的ID。
如果我使用var valueId = valueElement.prop('id');
,而不是不確定的我變得那麼空字符串。
我希望有人能給一個提示。
編輯: 我玩了一點點的螢火蟲控制檯。我添加了功能:
function findDetailElements(){
var filterArray = {};
$(".detailRow").each(function(){
var labelElement = $(this).find(".detailLabel");
var valueElement = $(this).find(".detailValue");
var labelId = labelElement.attr('id');
var valueId = valueElement.attr('id');
filterArray[labelId] = valueId;
});
return filterArray;
}
充滿變量:
var list = findDetailElements();
console.log(list);
結果:( 「txtAuszubildender仍下落不明。」)
Object { lblResource: "txtId", lblZustaendigeStelle: "selZustaendigeStelle", lblAuszubildender: undefined, lblBeruf: "selBeruf", lblFachrichtung: "selFachrichtung", lblSchwerpunkt: "selSchwerpunkt", lblBetrieb: "txtBetrieb", lblBeginn: "txtBeginn", lblEnde: "txtEnde", lblStatus: "txtStatus" }
但是當我做這樣的事情:
$("#txtAuszubildender")
我得到一個結果:
Object { length: 1, context: HTMLDocument → contract, selector: "#txtAuszubildender", 1 weitere… }
[我無法重現此](http://jsfiddle.net/CNMfL/292/),你的代碼對我來說工作正常。你應該考慮使用'data-id'而不是''txtAuszubildender'',因爲'id'是一個**唯一的**標識符,並且只能在文檔中使用一次。 –
謝謝Fabian,不幸的是data-id對我不起作用。 「txtAuszubildender」是獨一無二的。我在這個問題上提供了更多的信息。 –