为什么我的函数不能处理这个按钮元素?

时间:2016-10-28 04:23:42

标签: javascript jquery

我的按钮元素似乎没有任何效果。在这里,我有多个函数可以测试它是否提供警报窗口 - 它们不起作用,但它似乎正确写入。我将提供2个功能代码,这些代码要么不起作用,要么html按钮元素有助于检查代码。我是1个月的javascript,所以如果这里的错误被证明是一个愚蠢的错误,我提前道歉。

HTML按钮元素:

<form input='text' action="" method="post" name="entry" class="journalentry" id='form'>
    <textarea name='entrybody' rows='12' cols='90' placeholder="Anything you want to write about the day you are thinking of." class="journalentry"></textarea
    <button type='submit' onclick= "test()" id='submitid' class='submitbutton'>Submit</button>
</form>

function#1(从javascript创建元素并添加一个事件监听器。这个不使用html表单,但函数#2会这样做):

var submitelement = document.createElement('BUTTON');
var submittextnode = document.createTextNode("SUBMIT ME");
submitelement.appendChild(submittextnode);
document.body.appendChild(submitelement);
var submitattr = document.createAttribute("id");
submitAttr.value = "submitbutton";
submitelement.setAttributeNode("submitAttr");


submitelement.addEventListener('click', function() {
    alert('88888');
})

函数#2(注释掉函数#1并写出这段代码。仍然不起作用):

document.getElementById("submitbutton").addEventListener("click", test();
function test () {
    var url = 'http://news.google.com';
    var method = "GET";
    var httpObj = new XMLHttpRequest();
        httpObj.open(method, url, 'true');
        httpObj.addEventListener("readystatechange", processRequest, false);
}

function processRequest (e) {
    if (httpObj.readyState == 4 && httpObj.status == 200)) {
        // time to partay!!!
        var response = httpObj.responseText;
        alert(response);
    }
}

1 个答案:

答案 0 :(得分:2)

功能不会触发,这意味着您在编码中犯了一些错误(语法错误)。
尝试纠正以下问题:
1.用此document.getElementById("submitbutton").addEventListener("click", test();替换此行document.getElementById("submitbutton").addEventListener("click", test()); 2.转换这一行document.getElementById("submitbutton").addEventListener("click", test()); 在关闭<script> tag之前(最后)。
如何调试javascript程序?
您可以通过右键单击主窗口屏幕&gt;轻松调试它。将出现一个下拉选择检查元素选项将出现一个窗口 - &gt;单击选项卡上的控制台在这里,您可以看到红色突出显示的javascript错误。