我有一个JavaScript函数一直让我发疯。这是该问题的最新变化。如果我将代码放在表单末尾之后(即在标记之后),则代码工作得很好;但是如果我将脚本引用引用到代码中,则会加载但不会执行。

这有效:


<script type="text/javascript"> 
    var matchFieldName = 'dotmatch'; 
    var resultFieldName = 'dotnumber'; 
    var lookupURL = "/AutoSuggestJSTest/AutoSuggest.asmx/DOTFind"; 
    var labelFieldName = "JobTitle"; 
    var valueFieldName = "DOTNumber"; 
    $('#' + matchFieldName).autocomplete({ 
        source: function(request, response) { 
            $.ajax({ 
                type: "POST", 
                url: lookupURL, 
                contentType: 'application/json', 
                dataType: "json", 
                data: JSON.stringify({ prefixText: request.term, count: 20 }), 
                success: function(data) { 
                    var output = jQuery.parseJSON(data.d); 
                    //                        var output = eval(data.d); 
                    response($.map(output, function(item) { 
                        var lbl = "item." + labelFieldName + " (item." + valueFieldName + ")"; 
                        var val = "item." + valueFieldName; 
                        return { 
                            //                                label: lbl, 
                            //                                value: val 
                            //                                label: eval('item.' + lableFieldName + '(item.' + valueFieldName + ')'), 
                            //                                value: eval('item.' + valueFieldName) 
                            label: item.JobTitle + "( " + item.DOTNumber + ")", 
                            value: item.DOTNumber 
                        } 
                    })); 
                }, 
                error: function(XMLHttpRequest, textStatus, errorThrown) { 
                    alert(textStatus); 
                } 
            }); 
        }, 
        minLength: 2, 
        select: function(event, ui) { 
            $('#' + resultFieldName).val(ui.item.value); 
            return ui.item.label; 
        } 
    }); 
</script> 
 
</div> 

但这不是:
</form> 
    <div> 
 
<script type="text/javascript" src="js/DOTAutocomplete.js" /> 
 
    </div> 
</body> 

.js文件的唯一内容是有效的行。

啊!

请您参考如下方法:

自动关闭的<script>标记无效,这是:

<script type="text/javascript" src="js/DOTAutocomplete.js" /> 

应该:
<script type="text/javascript" src="js/DOTAutocomplete.js"></script> 

还要注意,由于您使用的是选择器 $('#' + matchFieldName),因此该文件应该在该元素出现之后包含在文件中,或者将代码包装在 document.ready处理程序中,例如:
$(function() { 
  //your code... 
}); 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!