我在提交表单时发现了这一点
我该怎么做才能使提交成功
当我使用input type = text
时,它可以正常工作最好提供完整的代码
我是编码初学者。
我删除了很多选项,因为它的代码太多,细节太少了
我在控制台中没有发现错误,但是数据仍然无法发送到Firebase数据库
<form id="ConForm">
<Label class="red"> 學生稱呼:</Label>
<input type="text" name="name" id="name"><br>
<Label class="red"> 性別:</Label>
<select name="sex1" id="sex1" >
<option value="男">男</option>
<option value="女">女</option>
</select><br>
<Label class="red"> 就讀年級:</Label>
<select name="year" id="year">
<option value="幼稚園">幼稚園</option>
<option value="小一">小一</option>
</select><br>
<Label class="red"> Whatsapp號碼:</Label>
<input type="number" name="phone" placeholder="將以此電話進行聯絡" id="phone"><br>
<Label class="red"> 補習地區:</Label>
<select name="location" id="location">
<option value="中西區">中西區</option>
<option value="灣仔區">灣仔區</option>
</select><br>
<Label class="red"> 導師性別要求:</Label>
<select name="sex2" id="sex2">
<option value="男">男</option>
<option value="女">女</option>
</select><br>
<Label class="red"> 時薪hkd:</Label>
<select name="salary" id="salary">
<option value="100-150">100-150</option>
</select><br>
<Label class="red"> 每堂幾小時:</Label>
<select name="hour" id="hour">
<option value="1.5">1.5</option>
<option value="2">2</option>
</select><br>
<Label class="red"> 科目:</Label>
<select name="subject" id="subject">
<option value="中國語文">中國語文</option>
<option value="英國語文">英國語文</option>
</select><br>
<Label class="red"> 補習時間:</Label>
<select name="time" id="time">
<option value="星期一">星期一</option>
<option value="星期二">星期二</option>
</select><br>
<p class="full">
<Label class="red"> 其他要求:</Label>
<textarea name="message" rows="2" id="message"></textarea>
</p>
<p class="full">
   <Button type="submit">提交</Button><span>    *按一下「提交」即表示您同意服務條款 和私隱政策</span><br>
</p>
</form>
</div>
</div>
javascript
//Reference message collection
var messageRef = firebase.database().ref('posts');
//listen for form submit
document.getElementById('ConForm').addEventListener('submit',submitForm);
//submit form
function submitForm(e){
e.preventDefault();
//get value
var name=getInputVal('name');
var sex1=getInputVal('sex1');
var sex2=getInputVal('sex2');
var location=getInputVal('location');
var salary=getInputVal('salary');
var hour=getInputVal('hour');
var subject=getInputVal('subject');
var time=getInputVal('time');
var year=getInputVal('year');
var phone=getInputVal('phone');
var message=getInputVal('message');
//Save message
saveMessage(name,year,phone,message,sex1,sex2
,location,salary,hour,subject,time);
}
//function to get form value
function getInputVal(id){
return document.getElementById(id).value;
}
//Save message to firebase
function saveMessage(name,year,phone,message,sex1,
sex2,location,salary,hour,subject,time){
var newMessageRef = messageRef.push();
newMessageRef.set({
姓名: name,
級別: year,
WhatsApp號碼: phone,
其他要求: message,
性別:sex1,
導師性別要求:sex2,
地區:location,
時薪:salary,
每堂幾小時:hour,
科目:subject,
補習時間:time,
})
}
答案 0 :(得分:0)
在声明函数之前,您正在使用函数submitForm
。 JS被解释而不是编译,这意味着定义顺序很重要。
在使用功能function submitForm(e){...}
之前先定义功能document.getElementById('ConForm').addEventListener('submit',submitForm);
//Reference message collection
var messageRef = firebase.database().ref('posts');
//listen for form submit
//submit form
function submitForm(e) {
e.preventDefault();
//get value
var name = getInputVal('name');
var sex1 = getInputVal('sex1');
var sex2 = getInputVal('sex2');
var location = getInputVal('location');
var salary = getInputVal('salary');
var hour = getInputVal('hour');
var subject = getInputVal('subject');
var time = getInputVal('time');
var year = getInputVal('year');
var phone = getInputVal('phone');
var message = getInputVal('message');
//Save message
saveMessage(name, year, phone, message, sex1, sex2
, location, salary, hour, subject, time);
}
//function to get form value
function getInputVal(id) {
return document.getElementById(id).value;
}
//Save message to firebase
function saveMessage(name, year, phone, message, sex1,
sex2, location, salary, hour, subject, time) {
var newMessageRef = messageRef.push();
newMessageRef.set({
姓名: name,
級別: year,
WhatsApp號碼: phone,
其他要求: message,
性別: sex1,
導師性別要求: sex2,
地區: location,
時薪: salary,
每堂幾小時: hour,
科目: subject,
補習時間: time,
})
}
document.getElementById('ConForm').addEventListener('submit', submitForm);
答案 1 :(得分:0)
在使用JavaScript之前,您必须确保所有HTML都已加载并准备就绪。
基本上,您必须在html后面插入脚本。