2015-10-13 9 views
0

Я принимаю вводный курс JavaScript, и я выполняю все указания, но функция не выполняется. Я просмотрел многие вопросы «JavaScript не будет исполнять» в StackOverflow, и ни один из них не содержит ответа, который бы разрешил мою проблему.Новое в JavaScript - почему моя функция не будет выполняться?

Вот HTML заголовок:

<!DOCTYPE> 
<html> 
<head> 
<title>Monroe Public Library</title> 
<link href="mplstyles.css" rel="stylesheet" type="text/css" /> 
<script type="text/javascript" src="random.js"></script> 
<script> 
/* 
The showImg() function displays a random image from the 0.jpg through 9.jpg files. The 
random image is designed to thwart hackers attempting to enter the library records data 
base by requiring visual confirmation 
*/ 

function showImg() { 
    var imgNumber = randomInteger(9); 
    // Return a random number from 0 to 9 
    document.write("<img 'src=" + imgNumber + ".jpg' alt='' />"); 
} 

</script> 
</head> 

Вот часть моей HTML вызывающей функции. Он должен вызывать четыре раза, чтобы выводить строку HTML пять раз и показывать пять изображений числа на веб-странице.

<table border="1" cellpadding="5" cellspacing="0"> 
<tr> 
    <th>Username</th> 
    <td><input size="20" /></td> 
</tr> 
<tr>  
    <th>Password</th> 
    <td><input type="password" size="20" /></td> 
</tr> 
<tr> 
    <td>As a final security check, enter the 5 numbers 
    you see displayed below.</td> 
    <td><input size="6" /></td> 
</tr> 
<tr> 
    <td colspan="2" class="center"> 
    <input type="button" value="View Library Records" /> 
    </td> 
</tr> 
<tr> 
    <td colspan="2" class="center"> 
    <script>showImg();showImg();showImg();showImg();showImg();</script> 
    </td> 
</tr> 
</table> 
</div> 

Когда я открываю страницу, она ничего не выводит; просто остается так, как я написал его с помощью элемента сценария и вызова функции. Ячейка таблицы просто отображается как пустая. Я поместил в это окно сообщения, чтобы увидеть, даже если он вообще входит в него, и это происходит, но окно сообщения появляется только один раз (независимо от того, сколько раз я вызываю функцию).

Файл JavaScript (random.js), а также HTML все предоставлены и работают, поэтому я включил только соответствующие разделы.

+1

что это? – brk

+1

Вы понимаете, как работает document.write? – j08691

+0

Есть ли что-нибудь в консоли браузера? Ошибка? Я предполагаю, что функция randomInteger включена в random.js include. – AtheistP3ace

ответ

2

Не уверен, если это связано, но у вас есть "<img 'src=" вместо "<img src='"

Кроме этого, определение

function randomInteger(rng) { 
    return Math.round(Math.random() * rng); 
} 

и изменение document.write строку

document.write("<b>" + imgNumber + ".jpg</b> "); 

нормально работал меня.

+0

Это была моя проблема - неправильные цитаты. Как только я исправил кавычки, код работал правильно. Спасибо Ian – NickSS

1

Эта линия

document.write("<img 'src=" + imgNumber + ".jpg' alt='' />"); 

Имеет апостроф неуместной. Она должна быть

document.write("<img src='" + imgNumber + ".jpg' alt='' />"); 

<table border="1" cellpadding="5" cellspacing="0"> 
 
<tr> 
 
    <th>Username</th> 
 
    <td><input size="20" /></td> 
 
</tr> 
 
<tr>  
 
    <th>Password</th> 
 
    <td><input type="password" size="20" /></td> 
 
</tr> 
 
<tr> 
 
    <td>As a final security check, enter the 5 numbers 
 
    you see displayed below.</td> 
 
    <td><input size="6" /></td> 
 
</tr> 
 
<tr> 
 
    <td colspan="2" class="center"> 
 
    <input type="button" value="View Library Records" /> 
 
    </td> 
 
</tr> 
 
<tr> 
 
    <td colspan="2" class="center"> 
 
    <script> 
 
    function showImg() { 
 
     var imgNumber = Math.floor(Math.random() * 9); 
 
     document.write("<img src='" + imgNumber + ".jpg' alt='' />"); 
 
    } 
 
    showImg();showImg();showImg();showImg();showImg(); 
 
    </script> 
 
    </td> 
 
</tr> 
 
</table>

+0

У меня есть предыдущее программирование и веб-опыт (верьте или нет), и это явно лучше. Я думаю, что мой инструктор просто хочет, чтобы у нас была практика импортирования из файла и вызова функции, объявленной в голове. Ну что ж. – NickSS

+0

Я только переместил скрипт inline, чтобы запустить его в этой песочнице, а не в части того, что я показывал ... –

+0

Хорошо, вот что я понял; просто не был положительным, поэтому я включил его в свой комментарий. :) – NickSS