Javascript 当我提交表单时,我总是得到零值
我遇到了这个问题,当我在表单中输入一个值时,值变为零,因此没有保存正确的值 下面是我提交所有者表单的示例 它没有显示我的参数Javascript 当我提交表单时,我总是得到零值,javascript,html,ruby-on-rails,Javascript,Html,Ruby On Rails,我遇到了这个问题,当我在表单中输入一个值时,值变为零,因此没有保存正确的值 下面是我提交所有者表单的示例 它没有显示我的参数 <ActionController::Parameters {} permitted: true> 这是我的主人表 <form id = "owner_form"> <div> <label for='name'>Owner Name:</label>
<ActionController::Parameters {} permitted: true>
这是我的主人表
<form id = "owner_form">
<div>
<label for='name'>Owner Name:</label>
<input type='text' id='name' name='name' placeholder="John Doe" />
</div>
<div>
<label for='phone_number'>Phone Number:</label>
<input type='text' id='phone_number' name='phone_number' placeholder="Phone Number" />
</div>
<div>
<label for='real_estate_agent'>Listing Agent:</label>
<input type='text' id='real_estate_agent' name='real_estate_agent' placeholder="Agent"/>
</div>
<div>
<input type='submit' id='owner_submit' value='Submit'/>
</div>
</form>
然后,这里使用强参数在后端执行“创建”操作,表单值将指向这些参数
class OwnersController < ApplicationController
def create
owner = Owner.create(owner_params)
if owner.save
render json: owner
end
end
private
def owner_params
params.permit(:name,:phone_number,:real_estate_agent)
end
end
class OwnersController
我已经确保我的键和变量在前端和后端都是相同的,以保持一致性,但我目前无法解释这种行为,我想知道是否有人可以帮助我解释我需要更正的内容。我可以在这里提供提交后代码:
function submitPost() {
function submitPost() {
let textArea = document.getElementById("input-textarea")
let counter = document.getElementById("input-characters")
let contentToPost = textArea.value;
if(contentToPost.length === 0) {
return false;
}
textArea.value = "";
counter.innerText = 0;
createPostHTML(contentToPost)
return false;
}
let currentPostId = 1;
function createPostHTML(postContent) {
let now = new Date()
let time = now.toLocaleTimeString()
let date = now.toLocaleString()
let name = ""
let username = ""
currentPostId = currentPostId + 1
postContent = postContent.replace(/</g, "<")
postContent = postContent.replace(/\n/g, "<br />")
postContent = postContent.replace(/(https?:\/\/[^\s]+)/g, "<a href=\"$1\" target=\"_blank\">$1</a>")
let template = `
<article id="article-container-${currentPostId}">
<header>
<h1>${name}</h1>
<h2>@${username}</h2>
</header>
<blockquote>
${postContent}
</blockquote>
<hr/>
<footer>
<p class="date-posted">Posted
<time>${date}</time>
</p>
</footer>
</article>`
document.getElementById("form-container").insertAdjacentHTML("afterend", template)
} let textArea = document.getElementById("input-textarea")
let counter = document.getElementById("input-characters")
let contentToPost = textArea.value;
if(contentToPost.length === 0) {
return false;
}
textArea.value = "";
counter.innerText = 0;
createPostHTML(contentToPost)
return false;
}
let currentPostId = 1;
function createPostHTML(postContent) {
let now = new Date()
let time = now.toLocaleTimeString()
let date = now.toLocaleString()
let name = ""
let username = ""
currentPostId = currentPostId + 1
postContent = postContent.replace(/</g, "<")
postContent = postContent.replace(/\n/g, "<br />")
postContent = postContent.replace(/(https?:\/\/[^\s]+)/g, "<a href=\"$1\" target=\"_blank\">$1</a>")
let template = `
<article id="article-container-${currentPostId}">
<header>
<button class="close" onclick="deletePost(${currentPostId})">
</button>
<h1>${name}</h1>
<h2>@${username}</h2>
</header>
<blockquote>
${postContent}
</blockquote>
<hr/>
<footer>
<p class="date-posted">Posted
<time>${date}</time>
</p>
</footer>
</article>`
document.getElementById("form-container").insertAdjacentHTML("afterend", template)
}
函数submitPost(){
函数submitPost(){
让textArea=document.getElementById(“输入textArea”)
让计数器=document.getElementById(“输入字符”)
让contentToPost=textArea.value;
if(contentToPost.length==0){
返回false;
}
textArea.value=“”;
counter.innerText=0;
createPostHTML(contentToPost)
返回false;
}
设currentPostId=1;
函数createPostHTML(postContent){
let now=新日期()
让time=now.toLocaleTimeString()
让date=now.tolocalString()
let name=“”
让username=“”
currentPostId=currentPostId+1
postContent=postContent.replace(/
ownerForm.addEventListener('submit',(event)=> {
event.preventDefault();
OwnerForm()
dropdownMenu()
ownerForm.reset()
})
function OwnerForm(){
let name = document.getElementById('name').value
let phone_number = document.getElementById('phone_number').value
let real_estate_agent = document.getElementById('real_estate_agent').value
let owner = {
name: name,
phone_number: phone_number,
real_estate_agent: real_estate_agent
}
let config ={
method: 'post',
body: JSON.stringify(owner),
header: {
'Content-Type': 'application/json',
"Accept": "application/json"
}
}
fetch(OWNERS_URL, config)
}
class OwnersController < ApplicationController
def create
owner = Owner.create(owner_params)
if owner.save
render json: owner
end
end
private
def owner_params
params.permit(:name,:phone_number,:real_estate_agent)
end
end
function submitPost() {
function submitPost() {
let textArea = document.getElementById("input-textarea")
let counter = document.getElementById("input-characters")
let contentToPost = textArea.value;
if(contentToPost.length === 0) {
return false;
}
textArea.value = "";
counter.innerText = 0;
createPostHTML(contentToPost)
return false;
}
let currentPostId = 1;
function createPostHTML(postContent) {
let now = new Date()
let time = now.toLocaleTimeString()
let date = now.toLocaleString()
let name = ""
let username = ""
currentPostId = currentPostId + 1
postContent = postContent.replace(/</g, "<")
postContent = postContent.replace(/\n/g, "<br />")
postContent = postContent.replace(/(https?:\/\/[^\s]+)/g, "<a href=\"$1\" target=\"_blank\">$1</a>")
let template = `
<article id="article-container-${currentPostId}">
<header>
<h1>${name}</h1>
<h2>@${username}</h2>
</header>
<blockquote>
${postContent}
</blockquote>
<hr/>
<footer>
<p class="date-posted">Posted
<time>${date}</time>
</p>
</footer>
</article>`
document.getElementById("form-container").insertAdjacentHTML("afterend", template)
} let textArea = document.getElementById("input-textarea")
let counter = document.getElementById("input-characters")
let contentToPost = textArea.value;
if(contentToPost.length === 0) {
return false;
}
textArea.value = "";
counter.innerText = 0;
createPostHTML(contentToPost)
return false;
}
let currentPostId = 1;
function createPostHTML(postContent) {
let now = new Date()
let time = now.toLocaleTimeString()
let date = now.toLocaleString()
let name = ""
let username = ""
currentPostId = currentPostId + 1
postContent = postContent.replace(/</g, "<")
postContent = postContent.replace(/\n/g, "<br />")
postContent = postContent.replace(/(https?:\/\/[^\s]+)/g, "<a href=\"$1\" target=\"_blank\">$1</a>")
let template = `
<article id="article-container-${currentPostId}">
<header>
<button class="close" onclick="deletePost(${currentPostId})">
</button>
<h1>${name}</h1>
<h2>@${username}</h2>
</header>
<blockquote>
${postContent}
</blockquote>
<hr/>
<footer>
<p class="date-posted">Posted
<time>${date}</time>
</p>
</footer>
</article>`
document.getElementById("form-container").insertAdjacentHTML("afterend", template)
}
<button class="compose" onclick="submitPost()">
<img src="" height="30" width="30"/>
</button>