You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HTML表单数据按指定格式复制到剪贴板功能实现需求

Solution to Copy Form Data to Clipboard in Specified Format

Got it, let's build this clipboard copy feature for your form. I'll walk you through a complete, working solution that matches the exact format you provided.

Step 1: Structure Your HTML Form

First, make sure each form field has a name attribute that maps to your target field labels (we'll convert these to the uppercase spaced format later). Here's an example form matching your sample data:

<form id="painForm">
  <div>
    <label>Back Type of Pain:</label>
    <input type="text" name="back_type_of_pain" value="SHARP">
  </div>
  <div>
    <label>Pain Level:</label>
    <input type="number" name="pain_level" value="9">
  </div>
  <div>
    <label>How Often:</label>
    <input type="text" name="how_often" value="DAILY">
  </div>
  <div>
    <label>Injury Related:</label>
    <input type="text" name="injury_related" value="NONE">
  </div>
  <div>
    <label>Injury Date:</label>
    <input type="text" name="injury_date" value="NONE">
  </div>
  <div>
    <label>How Long:</label>
    <input type="text" name="how_long" value="1 YEAR NOW">
  </div>
  <div>
    <label>Cause of Pain:</label>
    <input type="text" name="cause_of_pain" value="ARTHRITIS">
  </div>
  <div>
    <label>Worse When:</label>
    <input type="text" name="worse_when" value="BENDING OVER">
  </div>
  <div>
    <label>Treatment Tried:</label>
    <input type="text" name="treatment_tried" value="ALEVE, TYLENOL , PAIN PILLS">
  </div>
  <button type="button" onclick="copyFormData()">Copy to Clipboard</button>
</form>

Step 2: Add the JavaScript Logic

This script will collect all form fields, format their names to match your example, assemble the string, and copy it to the clipboard. We'll also add a simple success/failure alert for feedback.

function copyFormData() {
  // Get the form element
  const form = document.getElementById('painForm');
  // Create an array to hold our formatted strings
  const formattedData = [];

  // Loop through each form element
  Array.from(form.elements).forEach(element => {
    // Skip buttons and fields without a name
    if (element.tagName !== 'BUTTON' && element.name) {
      // Convert the field name (e.g., "back_type_of_pain") to uppercase spaced format
      const fieldLabel = element.name.split('_').map(word => word.toUpperCase()).join(' ');
      // Add the label and value to our array (e.g., "BACK TYPE OF PAIN: SHARP")
      formattedData.push(`${fieldLabel}: ${element.value.trim()}`);
    }
  });

  // Join all parts into a single string with spaces between each entry
  const finalString = formattedData.join(' ');

  // Copy to clipboard
  navigator.clipboard.writeText(finalString)
    .then(() => {
      alert('Form data copied to clipboard!');
    })
    .catch(err => {
      console.error('Failed to copy: ', err);
      alert('Oops, failed to copy data. Check the console for details.');
    });
}

How It Works

  • Field Name Conversion: The script takes each field's name (using underscores as separators), splits it into words, capitalizes each word, and joins them with spaces to match your label format.
  • Data Collection: It loops through all form elements, skips buttons, and builds the formatted string entries.
  • Clipboard Integration: Uses the modern navigator.clipboard API for reliable copying (works in all modern browsers). We add error handling in case the browser doesn't support this API or copying fails.

Customization Tips

  • If you're using dropdowns (<select>) or radio buttons, the script will still work—element.value will grab the selected value automatically.
  • Adjust the name attributes of your form fields to match the labels you want in the final string.
  • If you prefer a different separator between entries (instead of a space), just change the join(' ') part to something else like join('\n') for new lines.

内容的提问来源于stack exchange,提问作者Kervin Vizcarra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:46:15