gpt4 book ai didi

javascript - jQuery/JS 可以检查什么改变了输入吗?

转载 作者:行者123 更新时间:2023-11-28 01:57:42 26 4
gpt4 key购买 nike

jQuery 或纯 JavaScript 可以检查输入字段的值如何更改吗?也许类似的东西:

$('input').change(function(e){
e.preventDefault();
console.log(e.changedFunction.name);
});

我知道给定的代码不起作用并且不能执行我想要的操作。但这有可能吗?

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

编辑:

包括示例代码。

编辑 block .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() 转义所有字符(用于数据库注入(inject)保护 - 此处并不重要)。

最佳答案

根据你所描述的情况。我希望你使用 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.
});

感谢和问候,

菲利蒙·菲利普·昆朱蒙

关于javascript - jQuery/JS 可以检查什么改变了输入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18872523/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com