JS;阻止onClick函数发生,直到页面重新加载

时间:2016-06-02 19:39:40

标签: javascript forms twitter

所以我有一个wordpress网站我建立了允许用户填写表单,如果成功提交,它将创建一个帖子。

当用户点击表单上的提交时,我会有一些js提示他们发送带有动态预填充内容的推文。问题是我希望推文的预填充内容是他们刚刚填写并提交的其中一个字段。但是,因为这种情况立即发生,所以推文最终预先填写了上次表格填写时的内容。

所以,我在想,如果在添加和发布新内容的页面重新加载之前该onClick函数无法触发,那应该可行,但我不知道该怎么做。

这是表单提交输入的标记:

<input onclick="tweetIt()" class="exclude btn-main stack" name="user-submitted-post" id="user-submitted-post" type="submit" value="<?php _e('Submit', 'usp'); ?>">

以下是表单成功提交后的显示方式:

<p id="dream"><?php echo substr(the_title('', '', FALSE), 0, 140); ?></p> // the title is populated with one of the fields from the form

这里是js:

function tweetIt () {
  var phrase = document.getElementById('dream').innerText;
  var tweetUrl = 'https://twitter.com/share?text=' +
    encodeURIComponent(phrase) +
    '.' +
    '&url=' +
    'http://xxx';

  window.open(tweetUrl);
}

希望我能以一种有意义的方式表达清楚。 任何帮助一如既往地非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以check if the current request is a post然后拨打推文。

<?php 
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
?>
(function(){
  var phrase = "<?php echo substr(the_title('', '', FALSE), 0, 140); ?>";
  var tweetUrl = 'https://twitter.com/share?text=' +
    encodeURIComponent(phrase) +
    '.' +
    '&url=' +
    'http://xxx';    
  window.open(tweetUrl);
})()
<?}?>