splitforms.com

Contact Form (with phone) · JavaScript

Contact Form (with phone) for JavaScript

Name, email, phone, company, reason — for B2B inquiries that need qualification. Free for 500 submissions total — no backend, no SDK, no plugin.

  • 500 free total
  • 6 fields ready
  • 60-second setup
Contact Form (with phone) for JavaScript — copy-paste form code

Copy-paste code

Drop into any JavaScript project.

Replace YOUR_ACCESS_KEY with your splitforms key, paste into a JavaScript page, and ship. No build-time integration required.

Get free access key
form.html
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
  <input type="hidden" name="subject" value="New detailed contact submission">

  <label for="name">Full name *</label>
  <input id="name" type="text" name="name" placeholder="Jane Builder" required>
  <label for="email">Work email *</label>
  <input id="email" type="email" name="email" placeholder="[email protected]" required>
  <label for="phone">Phone *</label>
  <input id="phone" type="tel" name="phone" placeholder="+1 415 555 0142" required>
  <label for="company">Company</label>
  <input id="company" type="text" name="company" placeholder="Acme Inc">
  <label for="reason">What's this about? *</label>
  <select id="reason" name="reason" required>
    <option value="">Choose…</option>
    <option>Sales / pricing</option>
    <option>Partnerships</option>
    <option>Press / media</option>
    <option>Support</option>
    <option>Careers</option>
    <option>Other</option>
  </select>
  <label for="message">Message *</label>
  <textarea id="message" name="message" placeholder="Give us context — links, dates, deal size, anything we should know." required></textarea>

  <!-- honeypot — bots fill every field -->
  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">

  <button type="submit">Send</button>
</form>

<!-- drop-off analytics + partial leads (the form works without it) -->
<script src="https://splitforms.com/embed.js" async></script>

JavaScript + Contact Form (with phone)

Built for JavaScript developers who hate operating a backend.

Vanilla JavaScript gives you full control over the form lifecycle — event listeners, validation, AJAX submission — without framework overhead. The contact form (with phone) on this page uses addEventListener('submit'), new FormData(), and fetch() to POST to splitforms. No jQuery, no Axios, no polyfill. This is the lightest possible integration: zero dependencies, zero build step, zero bundle-size impact. Perfect for sites where every byte matters — landing pages, marketing sites, and progressive-enhancement scenarios.

  • 500 form submissions total, free to start
  • Unlimited forms on every plan, including Free
  • Spam protection — honeypot plus a rule-based filter
splitforms as the form backend for JavaScript

Contact Form (with phone) fields

What every field actually does.

The posted payload contains full name, work email, phone, company, what's this about?, message. Required fields are full name, work email, phone, what's this about? and message. Rename, remove, or add your own — splitforms accepts any name you POST.

  • Full name — Greeting + dashboard label so submissions don't all read 'anonymous'.
  • Work email — Reply-to address — splitforms wires this so hitting reply goes back to the sender.
  • Phone — Faster qualification — phone leads convert ~3× higher than email-only on B2B forms.
contact form (with phone) fields in the splitforms dashboard

Template playbook

The reason this contact form (with phone) exists.

Phone fields suffer from format chaos — users type +1 555 123 4567, (555) 123 4567, 555.123.4567, 5551234567. Three options: accept anything and normalize server-side (best for international), use a pattern attribute for client-side validation (good for US-only), or apply a JavaScript mask that formats as the user types (highest conversion, more code). splitforms accepts any format and your form's UX is whichever approach fits your audience.

  • Use type="tel" not type="text"
  • Add a pattern attribute for validation
  • (Optional) Add the JS mask
Contact Form (with phone) playbook for JavaScript

Setup

Generate, embed, receive.

Three actions stand between you and your first contact form (with phone) submission — no backend, no database, no CAPTCHA library.

Generate a free splitforms key

Sign in at splitforms.com — your access key is created instantly. No credit card, no setup wizard, no SDK to install.

Paste the contact form (with phone) into your JavaScript project

Drop the form snippet into a JavaScript page, component, or layout. Replace YOUR_ACCESS_KEY with the key from your dashboard. The form action is a hard-coded URL — no env vars or build-time wiring needed.

Receive submissions

Dashboard updates live on Free. Free includes owner email delivery; paid plans add signed webhooks, CSV export, Slack/Discord forwarding, and BCC to your team.

How SplitForms works

What happens after someone submits your form?

splitforms receives the submission, filters spam, saves it to your dashboard and emails you — then, on paid plans, sends it on to your webhooks and integrations. No backend infrastructure to build.

A SplitForms contact form submission launching straight to your inbox

Add your endpoint

Point your form to your unique SplitForms endpoint. That's it.

HTML form pointing at a SplitForms submit endpoint

Receive submissions

We instantly capture and organize every submission in your inbox.

Submissions inbox with searchable leads and status pills

Route anywhere

Send data to email, spreadsheets, CRMs, webhooks, and 7,000+ apps.

Generic integration tiles for email, sheets, chat, CRM, automate, and webhook

No credit card required. Set up in under 60 seconds.

Connect & automate

Where can submissions go besides email?

On paid plans, submissions can also go to Slack, Discord, Google Sheets, Notion, Airtable, Zapier or any signed webhook — and splitforms works on the platforms you build on, from WordPress and Shopify to Next.js. With Stripe connected, your forms can take payments too.

Connect your SplitForms form to Slack, Google Sheets, Mailchimp, Zapier and more
NewTake payments on your formsDeposits, bookings, order forms — submitters check out through Stripe and the money goes straight to your Stripe account. Included on every paid plan.See plans →

Setup guides for the stacks you use

Common questions

Contact Form (with phone) on JavaScript — answered.

View all FAQs
Does this contact form (with phone) work on JavaScript?

Yes. The form is plain HTML with a single POST endpoint, so it runs on any JavaScript site without server-side code, plugins, or SDKs. Drop the snippet into a JavaScript page or component and submissions land in your splitforms dashboard.

How much does the contact form (with phone) cost on JavaScript?

Free for 500 submissions — no credit card, no time limit. Pro is $5/mo for 5,000 submissions a month, and Annual is $49/year for 15,000 submissions a month. The same pricing applies regardless of which framework hosts the form.

Can I customize the fields?

Yes. The template ships with sensible defaults (full name, work email, phone, company…) — add, remove, or rename any of them. Splitforms accepts whatever fields you POST.

How does spam protection work on the contact form (with phone)?

A hidden honeypot field catches dumb bots, and a rule-based filter scores the rest; anything that looks like spam goes to a separate Spam tab instead of your inbox. No CAPTCHA, no friction for human users — and it works the same on JavaScript as on any other framework.

Can I send the contact form (with phone) submissions to Slack or Discord?

Yes. Webhooks are available on paid plans, with auto-formatted payloads for Slack, Discord, and WhatsApp (via CallMeBot). Or send raw signed JSON to any URL — Zapier, n8n, your own server. Configure in the splitforms dashboard.

Will it work on a static JavaScript site?

Yes — the form posts directly to splitforms from the browser, so no server is involved. Works on Vercel, Netlify, GitHub Pages, Cloudflare Pages, S3, or any plain Apache host.

Why use type="tel" if it doesn't do anything special on desktop?

Two reasons. (1) Mobile keyboards: tel triggers the numeric keypad, dramatically reducing typos. (2) Accessibility: screen readers announce the field type, helping users with assistive tech understand what's expected. The 'no desktop benefit' is a feature, not a bug — the behavior matches user intent.

Should I validate international or US-only?

Depends on your audience. International contact forms should accept any format (use a permissive pattern + server-side normalization). US-only forms can use a strict pattern that matches `(555) 123-4567`. Either way, splitforms accepts whatever format the user submits — the validation is for UX, not data integrity.

Does the JS mask work with paste?

Yes — listen for both `input` and `paste` events, and reformat on every change. The pattern only validates on submit, so the mask gives live feedback as the user types or pastes.

Simple pricing

How much does splitforms cost?

Free gives you 500 submissions for $0 — no card, no time limit. Pro is $5/month for 5,000 submissions a month, and Annual is $49/year for 15,000 a month with every Pro feature.

Free

$0— 500 submissions
 

No card, no time limit

Best for testing

For side projects and indie devs.

  • 500 free submissions
  • Unlimited forms
  • Email notifications included
  • Smart spam filtering
  • Submissions dashboard
  • Redirect after submit
  • MCP server included

Annual

$49/ year
About $4.08/mo, billed yearly
Best value

Every Pro feature with triple the volume — $0.27 per 1,000 at full use.

  • 15,000 submissions / mo
  • Unlimited forms
  • Everything in Pro
  • File uploads with 5 GB storage
  • 3 team seats
  • Priority email support

No credit card required on Free • Cancel anytime • Full pricing and FAQ