Javascript jQuery/JS能否检查是什么改变了输入?

Javascript jQuery/JS能否检查是什么改变了输入?,javascript,jquery,html,Javascript,Jquery,Html,jQuery或纯JavaScript能否检查输入字段的值是如何更改的?可能类似于: $('input').change(function(e){ e.preventDefault(); console.log(e.changedFunction.name); }); 我知道给定的代码不起作用,也不符合我的要求。但这有可能吗 为什么我需要这个?我有一个对话框,其中有多个表单,每个表单更改一件事。当我提交表单时,该值会重置回以前的值。e、 表格中有一个单词“Hello”,当我把它改

jQuery或纯JavaScript能否检查输入字段的值是如何更改的?可能类似于:

$('input').change(function(e){
    e.preventDefault();
    console.log(e.changedFunction.name);
});
我知道给定的代码不起作用,也不符合我的要求。但这有可能吗

为什么我需要这个?我有一个对话框,其中有多个表单,每个表单更改一件事。当我提交表单时,该值会重置回以前的值。e、 表格中有一个单词“Hello”,当我把它改为“Hello,World!”,它成功地将数据发送到$.post,但随后将值重置为“Hello”。我似乎找不到任何函数,无论是php还是javascript,都无法更改输入。这就是为什么我需要检查是什么或谁更改了我的输入值

编辑:

包括示例代码

editblock.php

} else if ($_POST['what'] == 'email') {
$sql = mysql_query("SELECT id, email, loggedin FROM users WHERE id = " . mres($_POST['id']) . " LIMIT 1");
$edit = mysql_fetch_array($sql);
$output .= '<div id="block-' . $_POST['what'] . '"><form method="post" id="form-' . $_POST['what'] . '">';
$output .= '<input type="hidden" name="id" value="' . mres($_POST['id']) .'" />';
$output .= '<input type="text" name="value" value="' . $edit['email'] .'" /> ';
$output .= '<input type="hidden" name="what" value="' . mres($_POST['what']) .'" />';
$output .= '<input type="submit" name="submit" value="OK" />';
$output .= '</form></div>';
$output .= '<script>
  $("#form-' . $_POST['what'] . '").submit(function(event) {
    event.preventDefault(); 
    var $form = $( this ),
        doval = $form.find( "input[name=\"value\"]" ).val(),
        doid = $form.find( "input[name=\"id\"]" ).val(),
        dowhat = $form.find( "input[name=\"what\"]" ).val();

    $.post("/pages/profilis/doedit.php", { do: doval, id: doid, what: dowhat },
      function( data ) {
          $("#block-' . $_POST['what'] . '").empty().append( data );
          $form.find("input[name=\"value\"]").val(doval);
      }
    );
  });
</script>
';
}
doedit.php

else if ($_POST['what'] == 'email') {
if (empty($_POST['do'])) {
    $error[] = 'err';
} else {

    if ( ! preg_match("/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i", $_POST['do'])) {
        $error[] = "err";
    }

    $sql = mysql_query("SELECT `id` FROM `users` WHERE `email` = '" . mres($_POST['do']) . "' LIMIT 1");
    if (mysql_num_rows($sql) == 1) {
        $error[] = "err";
    }

    if ($edit['loggedin'] > 0) {
        $error[] = "err";
    }

    if (sizeof($error) >= 1) {
        echo join($error, '<br/>');

    } else {
        $sql = mysql_query("UPDATE users SET 
                        email = '" . mres($_POST['do']) . "'
                        WHERE id = " .(int)$edit['id'] . "
                        LIMIT 1");
        if ($sql) {
            echo 'OK';
            $logmsg = 'Changed email';
        } else {
            echo 'Error';
        }       
    }
}
} 

PHP函数mres将转义所有用于数据库注入保护的字符-在这里并不重要。

根据您解释的情况。我希望您使用jqueryajax

在这种情况下,完成Post功能后,您可以使用更改的值更改值

$.ajax({
  type: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
})
  .done(function( msg ) {
    alert( "Data Saved: " + msg ); // portion where you can change the field value to the updated one.
  });
感谢和问候


Philemon Philip Kunjumon

根据您解释的情况。我希望您使用jqueryajax

在这种情况下,完成Post功能后,您可以使用更改的值更改值

$.ajax({
  type: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
})
  .done(function( msg ) {
    alert( "Data Saved: " + msg ); // portion where you can change the field value to the updated one.
  });
感谢和问候


Philemon Philip Kunjumon

您是将表单发回服务器,还是使用AJAX提交表单数据?我假设是前者,但希望确保。发送一个额外的值“sender”,并将其设置为表单名称。然后,您可以在$.postWell中引用它,如果您将页面发回自身(我假设您这样做了),那么表单元素显然会在页面重新加载时获得其默认值。我添加了更多代码。我不会在更改某些内容后重新加载页面,只是在关闭对话框后才重新加载。您是将表单发回服务器,还是使用AJAX提交表单数据?我假设是前者,但希望确保。发送一个额外的值“sender”,并将其设置为表单名称。然后,您可以在$.postWell中引用它,如果您将页面发回自身(我假设您这样做了),那么表单元素显然会在页面重新加载时获得其默认值。我添加了更多代码。我不会在更改某些内容后重新加载页面,只有在关闭对话框后。