使用验证检查空白字段

时间:2019-10-17 13:27:14

标签: javascript validation

我有此代码:

$("#formulario").validate({
ignore: [],
rules: {
        nome:{required: true},
        contato:{required: true},
        telefone:{required: true},
         cidade:{required: true},
        email:{required: true, email: true},
        mensagem:{required: true},
      },
  });

它运作完美!

但是我以表格形式插入了一个称为URL的隐藏字段,并且只有在该隐藏字段为EMPTY的情况下,才应执行以上代码。

如何制作?

2 个答案:

答案 0 :(得分:0)

假设隐藏的输入字段的ID为use actix::prelude::*; use actix_web::{middleware, web, App, Error, HttpRequest, HttpResponse, HttpServer}; use actix_web_actors::ws; use std::time::Duration; fn ws_index( r: HttpRequest, stream: web::Payload, data: web::Data<Addr<ServerMonitor>>, ) -> Result<HttpResponse, Error> { let (addr, res) = ws::start_with_addr(MyWebSocket {}, &r, stream)?; data.get_ref().do_send(RegisterWSClient { addr: addr }); Ok(res) } struct MyWebSocket {} impl Actor for MyWebSocket { type Context = ws::WebsocketContext<Self>; } impl StreamHandler<ws::Message, ws::ProtocolError> for MyWebSocket { fn handle(&mut self, msg: ws::Message, ctx: &mut Self::Context) { println!("WS: {:?}", msg); match msg { ws::Message::Ping(msg) => { ctx.pong(&msg); } ws::Message::Pong(_) => {} ws::Message::Text(text) => ctx.text(text), ws::Message::Binary(bin) => ctx.binary(bin), ws::Message::Close(_) => { ctx.stop(); } ws::Message::Nop => (), } } } impl Handler<ServerEvent> for MyWebSocket { type Result = (); fn handle(&mut self, msg: ServerEvent, ctx: &mut Self::Context) { ctx.text(msg.event); } } #[derive(Message)] struct RegisterWSClient { addr: Addr<MyWebSocket>, } #[derive(Message)] struct ServerEvent { event: String, } struct ServerMonitor { listeners: Vec<Addr<MyWebSocket>>, } impl Actor for ServerMonitor { type Context = Context<Self>; fn started(&mut self, ctx: &mut Self::Context) { ctx.run_interval(Duration::from_secs(5), |act, _| { for l in &act.listeners { l.do_send(ServerEvent{ event: String::from("Event:") }); } }); } } impl Handler<RegisterWSClient> for ServerMonitor { type Result = (); fn handle(&mut self, msg: RegisterWSClient, _: &mut Context<Self>) { self.listeners.push(msg.addr); } } fn main() -> std::io::Result<()> { std::env::set_var("RUST_LOG", "actix_server=info,actix_web=info"); env_logger::init(); let sys = actix_rt::System::new("example"); let srvmon = ServerMonitor { listeners: vec![] }.start(); HttpServer::new(move || { App::new() .data(srvmon.clone()) .wrap(middleware::Logger::default()) .service(web::resource("/ws/").route(web::get().to(ws_index))) }) .bind("127.0.0.1:8080")? .start(); sys.run() }

您可以将函数调用包装在if条件中,在其中可以检查ID为url的隐藏字段是否为空。

url

答案 1 :(得分:0)

您可以在jQuery验证程序中进行一些验证...

$("#formulario").validate({
ignore: [],
rules: {
        newHiddenField:{maxlength: 0},
        ...
        nome:{required: true},
        contato:{required: true},
        telefone:{required: true},
        cidade:{required: true},
        email:{required: true, email: true},
        mensagem:{required: true},
      }
});

或者您可以检查该字段为空,然后致电验证程序...

let isHiddenFieldEmpty = Boolean($("#formulario input[name=newHiddenField]").val().length === 0);

isHiddenFieldEmpty && $("#formulario").validate({
ignore: [],
rules: {
        nome:{required: true},
        contato:{required: true},
        telefone:{required: true},
        cidade:{required: true},
        email:{required: true, email: true},
        mensagem:{required: true},
      }
});