在javascript中使用$ .POST调用php脚本

时间:2015-06-01 09:45:13

标签: javascript php jquery ajax events

我有一个带有textareabutton的HTML表单,当选择了部分文本时,它会调用下面的函数。使用单击按钮的de id和所选文本,我想通过POST方法调用php脚本。

$(document).ready(function() {
    $(".postbit_buttons").on("click", ".quoted_clicked", function() {
        var post = this.id;
        var selected = GetSelectedText();
        alert(" post = " + post + " seleted text = " + selected);
        $.post("test_quoted.php", {
                pid: post,
                selection: selected
            })
            .done(function() {
                alert("done")
            });
    });
});

在此处找到了获取选择的函数GetSelectedText()。 第一个警报显示正确的信息。但是,单击确定后,我在浏览器控制台上收到以下错误消息:

  

TypeError:在未实现的对象上调用'collapse'   界面选择。

我在论坛软件的另一部分中使用了类似的构造,这是其中的一部分,这是有效的。

我盯着这眼看着我的痛苦,却无法找到原因。有没有人可以帮我这个?

@Rory 函数GetSelectedText()的代码是:

function GetSelectedText()
{
  var selectedText=(
        window.getSelection
        ?
            window.getSelection()
        :
            document.getSelection
            ?
                document.getSelection()
            :
                document.selection.createRange().text
     );
 if(!selectedText || selectedText=="")
 {
    if(document.activeElement.selectionStart)
    {
     selectedText = document.activeElement.value.substring(
          document.activeElement.selectionStart
          . document.activeElement.selectionEnd);
    }
 }
 return selectedText;
}

感谢Rory的问题,我尝试了一些事情。我发现存储所选文本的变量“已选择”是导致错误的原因。我现在使用以下版本的GetSelectedText():

function GetSelectedText () {
    if (window.getSelection) {  // all browsers, except IE before version 9
        var range = window.getSelection ();
        return range.toString ();
    } 
    else {
        if (document.selection.createRange) { // Internet Explorer
            var range = document.selection.createRange ();
            return range.text;
        }
    }
}

它有效!! 对不起,打扰你。我从1968年开始练习编程,但几乎100%是使用FORTRAN进行科学计算。 Javascript对我来说很新鲜。

此致,Ad Bakker

0 个答案:

没有答案