JavaScript启用按钮无法在php中运行

时间:2012-01-07 00:05:30

标签: php javascript forms

我使用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 个答案:

答案 0 :(得分:3)

我无法理解你的问题,但是如果你问的是我认为你在问什么(这是“如果在页面加载时填写表格,我该如何启用按钮?”),更改你的脚本如下:

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

我添加了更改调用以触发更改事件处理程序,并将其包装在jQuery的ready处理程序中。

答案 1 :(得分:1)

尝试使用下面的attr函数

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

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

由于不同的浏览器会以不同的方式处理disbaled属性,因此使用truefalse可让jquery处理跨浏览器问题