用javascript设置表单的动作不会工作

时间:2009-11-16 11:48:50

标签: javascript html

我试图用javascript设置表单的动作!

为什么它不会对这段代码起作用:(会发生什么是页面被提交给自己,如'action =“#”'

    function validateForm() {
    var nr_of_pics=document.getElementById("annonsera_nr_pics").value;
    var name = document.getElementById("annonsera_name");
    var tel = document.getElementById("annonsera_tel");
    var email = document.getElementById("annonsera_email");
    var area = document.getElementById("annonsera_area");
    var community = document.getElementById("annonsera_area_community");
    var category = document.getElementById("annonsera_category");
    var subcats = document.getElementById("annonsera_subcats").getElementsByTagName("select");
    var headline = document.getElementById("annonsera_headline");
    var description = document.getElementById("annonsera_des");
    var price = document.getElementById("annonsera_price");
    if (nameValid(name) && telValid(tel) && emailValid(email) && areaValid(area) && communityValid(community) && categoryValid(category) && subcatsValid(subcats) && headlineValid(headline) && descriptionValid(description) && priceValid(price)){
        var form = document.getElementById("annonsera").action;
        form = "bincgi/verify_"+category+".php";
        alert (form);
        return true;
        } 
    return false;
}

和表格:

<form name="annonsera" id="annonsera" method="post" enctype="multipart/form-data" onSubmit="return validateForm();">

顺便说一句,警报框也不会出现! 另外,在HTML中手动设置表单操作可以正常工作,并且表单已正确验证!

3 个答案:

答案 0 :(得分:2)

var form = document.getElementById("annonsera").action;
form = "bincgi/verify_"+category+".php";

这些线条没有做你认为他们正在做的事情。

第一行是创建一个名为'form'的变量,并将表单的当前操作作为字符串复制到该变量中。然后第二行将变量设置为新值,但表单的操作未被更改,因为该变量仅包含表单操作的副本

这就是你想要的:

var formElement = document.getElementById("annonsera");
formElement.action = "bincgi/verify_"+category+".php";

但是,我不知道为什么你的警报箱根本没有出现。您确定所有有效方法实际上都已通过吗?

答案 1 :(得分:0)

一样简单

document.annonsera.action = "bincgi/verify_"+category+".php"

并提交表格

document.annonsera.submit()

答案 2 :(得分:0)

试试这个:

document.getElementById("annonsera").action = "bincgi/verify_"+category+".php";

您的代码的问题在于您首先将action属性读入变量:

var form = document.getElementById("annonsera").action;

然后将form变量设置为新字符串,但这不会更新DOM元素的值。