Skip to content

forms

自定义表单,使用方法如下:

forms 标签
id表单ID,如:1
class表单标识,如:feedback:留言板

示例

留言板
blade
@if (session('status'))  
   {!! session('status') !!}  
@endif   
<forms class="feedback" />
自定义表单示例
blade
<div class="forms">
	<form id="form" class="" action="{{ url('/form') }}" method="post" form="feedback_frontend">
		<input name="_token" id="token" type="hidden" value="{{ csrf_token() }}">
		<input name="_form" type="hidden" value="feedback_frontend">
		<input class="form-control" name="id" type="hidden" value="">
		<input class="form-control" name="form_id" type="hidden" value="">
		<div class="inputs">
			<div class="field">
				<label class="label">姓名:</label>
				<div class="control">
					<input class="input" id="name" type="text" placeholder="请输入姓名">
				</div>
			</div>
			<div class="field">
				<label class="label">电话:</label>
				<div class="control">
					<input class="input" id="phone" type="text" placeholder="请输入电话">
				</div>
			</div>
		</div>
		<div class="text">
			<div class="field">
				<label class="label">备注:</label>
				<div class="control">
					<textarea class="textarea" id="body" placeholder="备注"></textarea>
				</div>
			</div>
		</div>
		<button id="submit" type="button" class="button is-primary is-link is-responsive">
			提交
		</button>
	</form>
</div>

自定义表单axios提交示例

js
	const checkMobile = (s) => {
		var length = s.length;
		if (length == 11 && /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(14[0-9]{1})|)+\d{8})$/.test(s)) {
			return true;
		} else {
			return false;
		}
	}

	let submit = document.getElementById('submit')

	const formSubmit = () => {
		let token = document.getElementById('token').value
		let name = document.getElementById('name').value
		let phone = document.getElementById('phone').value
		let body = document.getElementById('body').value

		if (!name) {
			alert('必须输入姓名');
			return false;
		}
		if (!phone) {
			alert('必须输入手机号码');
			return false;
		}
		let mobilleFlag = checkMobile(phone);
		if (!mobilleFlag) {
			alert("请输入正确的手机号码");
			return false;
		}

		var instance = axios.create()

		instance.interceptors.request.use(
			config => {
				submit.classList.toggle('is-loading')
				console.log('请求即将发送...')
				return config;
			},
			error => {
				return Promise.reject(error);
			}
		);

		instance.post('/form', {
				_token: token,
				name: name,
				phone: phone,
				body: body,
				_form: 'feedback_frontend'
			})
			.then(response => {
				document.getElementById('form').reset()
				alert("提交成功!")
				submit.classList.toggle('is-loading')
			})
			.catch(error => {
				console.error(error);
			});
	}

	submit.addEventListener("click", () => {
		formSubmit()
	})
自定义表单数据
blade
<formdata class="feedback" row="6">
	{{ $_v['name'] }}
</formdata>