Передать переменную в автозаполнение JavaScript - PullRequest
1 голос
/ 21 декабря 2011

У меня есть этот базовый автоматически завершенный JavaScript, который хорошо работает, но вам нужно жестко кодировать веб-страницу. Я пытаюсь отправить данные переменной «Автозаполнение» на страницу, используя скрипт Perl

Рабочий код JavaScript выглядит следующим образом:

var CustomArray = new Array('an apple','alligator','elephant','pear','kingbird',
                          'kingbolt','kingcraft','kingcup','kingdom','kingfisher',
                          'kingpin','SML');

Теперь новый код:

var CustomArray=new Array(Autocomplete);

И Perl-скрипт отправляет данные обратно в браузер в следующем виде:

var Autocomplete = 'an apple','alligator','elephant','pear','kingbird',
'kingbolt','kingcraft','kingcup','kingdom','kingfish er','kingpin','SML'

Я тоже пытался

var Autocomplete = ['an apple','alligator','elephant','pear','kingbird',
                    'kingbolt','kingcraft','kingcup','kingdom','kingfisher',
                    'kingpin','SML']

Но я получаю: 'an apple','alligator','elephant','pear','kingbird','kingbolt','kingcraft','kingcup','kingdom','kingfish er','kingpin','SML' Все как одну строку в автозаполнении.

Кажется, я не могу заставить его работать правильно. Полный код HTML ниже.

<html>
<head>
<script language="javascript" type="text/javascript" src="http://www.comicinvasion.com/Code/Java/Autocomplete/Autocomplete.js"></script>
<script language="javascript" type="text/javascript" src="http://www.comicinvasion.com/Code/Java/Autocomplete/Common.js"></script>
<script language="JavaScript1.2" type="text/javascript" src="http://www.ComicInvasion.com/cgi-bin/Autocomplete.pl"></script>


<script>
var CustomArray=new Array(Autocomplete);
</script>

</head>

<body>

<input type='text' style='font-family:verdana;width:300px;font-size:12px' id='ACMP' value=''/>

<script>
var obj = actb(document.getElementById('ACOMP'),CustomArray);
</script>

</body>
</html> 

Ответы [ 2 ]

2 голосов
/ 21 декабря 2011

Во-первых, похоже, что это опечатка.id вашего элемента ввода - ACMP, тогда как вы передаете 'ACOMP' в getElementById.

Во-вторых, вы не предоставляете исходный код для своего сценария Perl.Это может выглядеть так:

#!/usr/bin/perl

use utf8;
use strict; use warnings;
use CGI();

local $| = 1;

print CGI::header(
    -type => 'text/javascript',
    -charset => 'utf-8',
);

print <<JS;
var Autocomplete = [
    'an apple','alligator','elephant','pear','kingbird',
    'kingbolt','kingcraft','kingcup','kingdom','kingfisher',
    'kingpin','SML'
];
JS

При использовании следующего HTML автозаполнение работает:

<!DOCTYPE html>
<html>
<head>

<script type="text/javascript"
src="http://www.comicinvasion.com/Code/Java/Autocomplete/Autocomplete.js"></script>

<script type="text/javascript" src="http://www.comicinvasion.com/Code/Java/Autocomplete/Common.js"></script>

<!-- Replace with the URI of your script -->
<script type="text/javascript" src="http://test:8080/cgi-bin/autocomplete.pl"></script>

</head>

<body>

<input type='text'
style='font-family:verdana;width:300px;font-size:12px'
id='ACOMP' value=''>

<script type="text/javascript">
var obj = actb(document.getElementById('ACOMP'), Autocomplete);
</script>

</body>
</html> 

Наконец, мне интересно, что ваши файлы JavaScript находятся в каталоге с именем Java.

0 голосов
/ 21 декабря 2011

Пусть Perl-скрипт вернет это:

var CustomArray = "an apple, alligator".split(',');

Или, если это так, то это тоже нормально:

var CustomArray = "'an apple','alligator'".split(',');

Очевидно, я пропустил остальные предметы, но вы бы включили их все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...