JavaScript启用按钮在php中不起作用


JavaScript enable button not working in php

我使用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

我听不懂你的问题,但如果你问的是我认为你在问的问题(即"如果表单在页面加载时填充,我如何启用按钮?"),请将脚本更改为以下内容:

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

我添加了用于触发变更事件处理程序的变更调用,并将其封装在jQuery的就绪处理程序中。

尝试使用下面中的attr函数

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

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

由于不同的浏览器对取消绑定属性的处理方式不同,使用truefalse可以让jquery处理跨浏览器问题