【问题标题】:JS; prevent onClick function from happening until page reloadsJS;防止 onClick 功能发生,直到页面重新加载
【发布时间】:2016-10-02 17:07:55
【问题描述】:

所以我正在构建一个 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);
}

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

【问题讨论】:

  • 这个页面会自己发布吗?
  • 在你的 tweetIt 函数中,将短语变量设置为用户刚刚完成输入的表单字段的值。
  • 是的,奥斯汀,一切都发生在一个页面上。
  • 谢谢,詹姆斯。这是我尝试的第一件事,但在那种情况下,这条推文只是空白。
  • 肯定会这样,贴出你试过的代码。

标签: javascript forms twitter


【解决方案1】:

你可以check if the current request is a post然后拨打tweet。

<?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);
})()
<?}?>

【讨论】:

  • 谢谢奥斯汀,你能推荐我应该在哪里添加这段代码吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
  • 2014-04-16
  • 2013-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多