Кнопка включения JavaScript не работает в php - PullRequest
3 голосов
/ 07 января 2012

Я использовал Javascript для включения или отключения кнопки, в зависимости от входного значения.Я новичок в PHP, поэтому я не знаю, почему это не работает.Вот код PHP:

<?php 
session_start();
include_once('header.php');
include_once('functions.php');

$_SESSION['userid'] = 1;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>Microblogging Application</title>
</head>
vbody>

<?php
if (isset($_SESSION['message'])){
    echo "<b>". $_SESSION['message']."</b>";
    unset($_SESSION['message']);
}
?>
<form method='post' action='add.php'>
<p>Your status:</p>
<textarea name='body' rows='5' cols='40' wrap=VIRTUAL></textarea>

<input type="text" name="age" />
<input type="text" name="poscode" />
<input type="submit" name="submit" value="Post" disabled="disabled"/>




</form>

<script type="text/javascript">
$('input[name="age"], input[name="poscode"]').change(function(){
  if ($(this).val())
  {
    $("input[name='submit']").removeAttr('disabled');
  }
});

</script>
<?php
$posts = show_posts($_SESSION['userid']);

if (count($posts)){
?>
<table border='1' cellspacing='0' cellpadding='5' width='500'>
<?php
foreach ($posts as $key => $list){
    echo "<tr valign='top'>\n";

    echo "<td>".$list['body'] ."<br/>\n";
    echo "<small>".$list['stamp'] ."</small></td>\n";
    echo "</tr>\n";
}
?>
</table>
<?php
}else{
?>
<p><b>You haven't posted anything yet!</b></p>
<?php
}
?>
</body>
</html>

Как мне изменить его, чтобы при значении input = "foo" кнопка теперь была кликабельной.
Заранее спасибо

-Ben

Ответы [ 2 ]

3 голосов
/ 07 января 2012

Я не могу понять ваш вопрос, но если вы спрашиваете, что, по-моему, вы спрашиваете (а именно: «Как включить кнопку, если форма заполняется при загрузке страницы?»), Измените свой скрипт к следующему:

$.ready(function(){
    $('input[name="age"], input[name="poscode"]').change(function(){
      if ($(this).val())
      {
        $("input[name='submit']").removeAttr('disabled');
      }
    }).change();
});

Я добавил вызов изменения, чтобы вызвать обработчик события изменения, и поместил его в обработчик готовности jQuery.

1 голос
/ 07 января 2012

Попробуйте использовать функцию attr, как показано ниже

$('#element').attr('disabled', true);

или

$('#element').attr('disabled', false);

Поскольку разные браузеры по-разному обрабатывают атрибут disbaled, использование true и false позволяет jquery решать кросс-браузерные проблемы

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