如何在重载()后更改HTML属性



简化我的代码,我用从用户那里获得的一些数据重新加载页面(将其传递到url(,但一旦页面被重新加载,我就需要更改输入框的占位符。这是我的html:

<div id="someId">
<input type="text" name="date_chosen" id="date_chosen" placeholder="Select Date">
</div>

如果没有页面重新加载,这个jQuery代码就完成了这项工作(更改占位符(:

<script>
$(function() {
$("#date_chosen").on("click", function(e) { 
location.href = "<same_url>" + "<user_input>"; //in the actual code I'm redirecting users to the same page after processing their input from the input box
$('#date_chosen').attr("placeholder", "parameter from user");
})
});
</script>

如果我在属性更改后立即执行console.log($('#date_chosen'(.attr("占位符"(,我会看到占位符在重新加载后发生了更改,但页面仍然显示旧的占位符,我认为这是因为另一个jquery初始化(无法解释(。解决方案是什么?

页面刷新后,旧脚本就不见了。您需要在重定向页面中处理您的逻辑。

编辑刚刚意识到您正在重定向到同一页面。然后,在页面加载时,我建议您调用服务器来检查用户是否成功提交了文件,如果成功了,则使用该响应进行逻辑处理。如果没有,则继续,就好像用户什么都没做一样。

另一种方法是不重定向用户。将表单设置为preventDefault操作。然后将提交按钮与处理程序函数绑定,使用ajax发送表单数据。一旦ajax返回成功的发送,那么就执行您的逻辑。

我找到的解决方案是读取url,并获取通过正则表达式传递给url的用户输入。

var url = window.location.href;
const regex = /?someparam=(.*)/gm;
var match = regex.exec(url)

最新更新