我需要存储格式中的内容>当用户点击ahref url
时,通过$ _cookie或$ _session输入
<form>
<input id="sccomment" type="text" placeholder="Leave a comment on Soundcloud" />
</form>
<a id="link" href="<?php echo $soundcloud_auth_url; ?>" class="btn-sc fw">Connect with Soundcloud</a>
答案 0 :(得分:0)
function submitData(url){
var sccomment = document.getElementById("sccomment").value;
document.cookie = "sccomment="+sccomment;
window.location.href=url;
}
<form>
<input id="sccomment" type="text" placeholder="Leave a comment on Soundcloud" />
</form>
<a id="link" onClick="submitData('<?php echo $soundcloud_auth_url; ?>');" class="btn-sc fw">Connect with Soundcloud</a>
答案 1 :(得分:0)
如果用户使用任何方式离开页面,您实际上希望保留未提交的评论,这样他们就不会丢失所有内容。
要以可重复使用的方式解决此问题,您可以使用:(working demo)
var persistInputs = document.querySelectorAll('[data-persist=true]');
for(var i = 0; i < persistInputs.length; i++) {
var input = persistInputs[i];
input.persistName = 'persist-' + input.name;
input.value = localStorage[input.persistName] || input.value;
input.onchange = function(){localStorage[this.persistName] = this.value;};
}
var forms = document.querySelectorAll('form');
for(var i = 0; i < forms.length; i++) {
forms[i].onsubmit = function(){
for(var i = 0; i < persistInputs.length; i++) {
var input = persistInputs[i];
if(this == input.form) {
localStorage.removeItem(input.persistName);
}
}
}
}
要提交之前要保留的任何文字输入都会添加属性data-persist="true"
:
<form method="post">
<label>Persisted comment: <input name="persisted-comment" data-persist="true"></label>
<label>Ordinary comment: <input name="ordinary-comment"></label>
<button>Send comment</button>
</form>
我选择使用localStorage
来保持持久性,因为服务器无法访问未提交的数据,未经用户明确同意将数据提交到服务器是一种隐私问题,我不想去那里,真的......有点邪恶。