我正在尝试使用 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 中手动设置表单操作效果很好,并且表单已正确验证!
最佳答案
var form = document.getElementById("annonsera").action;<br/>
form = "bincgi/verify_"+category+".php";
这些行并没有像你想象的那样做。
第一行创建一个名为“form”的变量,并将表单的当前操作作为字符串复制到该变量中。然后,第二行将变量设置为新值,但表单的操作并未更改,因为该变量仅包含表单操作的副本。
这就是你想要的:
var formElement = document.getElementById("annonsera");<br/>
formElement.action = "bincgi/verify_"+category+".php";
但是,我不知道为什么您的警报框根本不显示。您确定所有有效性方法实际上都已通过吗?
关于javascript - 使用 javascript 设置表单操作不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1741704/