为什么这不会阻止表单提交/重新加载页面?

时间:2012-07-12 23:00:15

标签: javascript

我正在尝试构建一个小的搜索脚本,但是当你点击提交时似乎无法阻止页面重新加载。我的代码可能有问题:

function searchThat(e) {
    if (!e) e = window.event;
    e.preventDefault();

    if (searchFor.indexOf(searchIn) != -1) {
        console.log('we found it');
    }
}

非常感谢!

我用

来称呼它
    if (searchFor && searchIn && searchSubmit) {
    addEvent(searchSubmit, 'submit', searchThat)
    }

function addEvent(elem, evtType, func) {
    if (elem.addEventListener) {
        elem.addEventListener(evtType, func, false);
    } else if (elem.attachEvent) {
        elem.attachEvent("on" + evtType, func);
    } else {
        elem["on" + evtType] = func;
    }
}

和HTML:

<div class="container">
    <form>
        <p>Search for:</p>
        <p class="mrm">
            <input type="text" id="searchFor" name="searchFor">
        </p>
        <p>In:</p>
        <textarea class="mrm" type="text" id="searchIn" name="searchIn"></textarea>
        <p>
            <input type="submit" class="clicker nmb" id="searchSubmit" name="searchSubmit">
        </p>
    </form>
</div>

1 个答案:

答案 0 :(得分:1)

<Input type="submit"/>将始终触发回发并重新加载页面。 如果它适用于您尝试实施的任何内容,请将输入更改为<Input type="button"/>

并且

addEvent(searchSubmit, 'click', searchThat)
{}

你的代码可能缺少更多的逻辑,但是你发布的内容可以让你的生活变得更加轻松,而不是做所有这些复杂的JScripting,你可以做到: <Input type="button" value="Click Me" onclick="searchThat()"/>