js生成随机编码并赋值给input文本框

本文介绍了一个简单的网页应用,用于生成包含随机数的产品编码。通过结合使用JavaScript生成随机数和当前时间戳,确保每次生成的编码都是唯一的。此应用适用于需要快速生成唯一标识符的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   效果图如下: 

    

    

    

    

    页面代码:

    

    <div class="form-item form-width-in fr">
      <label>产 品 编 码</label>
      <input type="text" id="product_code" name="product_code" value="" class="field fwidth" placeholder="获取随机编码">
      <a onclick="hq();" class="mailbox" style="cursor:pointer;">获取</a>
    </div>

 

 

    js代码:

    

    <script type="text/javascript">
      function hq(){
      //声明一个随机数变量,默认为1
      var GetRandomn = 1;
      //js生成时间戳
      var timestamp=new Date().getTime();
      //获取随机范围内数值的函数
        function GetRandom(n){
        //由随机数+时间戳+1组成
        GetRandomn=Math.floor(Math.random()*n+timestamp+1);
        }
      //开始调用,获得一个1-100的随机数
      GetRandom("30");
      //把随机数GetRandomn 赋给 input文本框.根据input的id
      document.getElementById('product_code').value = GetRandomn;
      //调试输出查看
      //alert(GetRandomn);
      }
    </script>

 

转载于:https://www.cnblogs.com/QW-lzm/p/7296666.html

<think>我们有一个需求:在React应用中,用户在一个输入框输入内容,点击按钮后,根据输入的内容查询数据(这里假设我们有一个查询函数),然后将查询结果展示在另一个文本框中。 我们可以这样设计: 1. 使用两个状态:一个用于存储输入框的值(inputValue),另一个用于存储查询结果(result)。 2. 输入框绑定onChange事件,更inputValue。 3. 按钮绑定onClick事件,在事件处理函数中,使用inputValue作为参数调用查询函数,然后将返回的结果设置给result。 4. 另一个文本框(或只读的输入框,或文本域)用于展示result。 注意:这里我们假设查询函数是异步的(比如从API获取数据),所以可能会用到异步操作(如async/await)。但为了简单,我们先假设有一个同步的查询函数,然后再扩展到异步。 假设我们有一个查询函数叫做fetchData,它接受一个字符串参数,返回一个字符串(或对象,这里简单用字符串)。 步骤: 1. 定义状态:inputValue和result。 2. 输入框的onChange事件处理函数:setInputValue(e.target.value) 3. 按钮的onClick事件处理函数:调用fetchData(可能是异步的),然后setResult。 示例代码: */</think>在 React 中实现按钮点击后根据输入框内容查询数据展示结果,可以通过以下步骤实现: ### 实现步骤 1. **状态管理**:使用 `useState` 管理输入值、查询结果和加载状态 2. **输入处理**:绑定输入框的 `onChange` 事件更状态 3. **查询触发**:按钮绑定 `onClick` 事件触发查询函数 4. **数据展示**:将查询结果渲染到展示文本框中 ```jsx import React, { useState } from 'react'; function DataQueryComponent() { // 状态管理 const [inputValue, setInputValue] = useState(''); // 输入框内容 const [result, setResult] = useState(''); // 查询结果 const [loading, setLoading] = useState(false); // 加载状态 // 模拟API查询函数 const fetchData = async (query) => { setLoading(true); // 模拟网络请求延迟 await new Promise(resolve => setTimeout(resolve, 1000)); // 实际项目中替换为真实API调用 return `查询【${query}】的结果:${Math.floor(Math.random() * 100)}`; }; // 点击查询按钮的处理函数 const handleQuery = async () => { if (!inputValue.trim()) return; // 空值处理 try { const data = await fetchData(inputValue); setResult(data); } catch (error) { setResult('查询失败: ' + error.message); } finally { setLoading(false); } }; return ( <div style={{ padding: '20px' }}> {/* 输入区域 */} <div style={{ marginBottom: '15px' }}> <input type="text" value={inputValue} onChange={(e) => setInputValue(e.target.value)} placeholder="输入查询内容" style={{ padding: '8px', width: '300px', marginRight: '10px' }} /> <button onClick={handleQuery} disabled={loading || !inputValue.trim()} style={{ padding: '8px 15px', background: loading ? '#ccc' : '#1890ff', color: 'white', border: 'none', cursor: 'pointer' }} > {loading ? '查询中...' : '查询数据'} </button> </div> {/* 结果展示 */} <div> <h4>查询结果:</h4> <textarea readOnly value={result} style={{ width: '100%', minHeight: '100px', padding: '10px', border: '1px solid #ddd', borderRadius: '4px' }} /> </div> </div> ); } export default DataQueryComponent; ``` ### 关键功能说明 1. **状态管理**: - `inputValue`:存储输入框内容 - `result`:存储查询结果 - `loading`:控制按钮状态防止重复提交 2. **输入处理**: ```jsx onChange={(e) => setInputValue(e.target.value)} ``` 实时更输入值到状态[^1] 3. **查询触发**: ```jsx <button onClick={handleQuery}>查询数据</button> ``` 按钮点击触发查询函数[^4] 4. **异步请求**: ```jsx const handleQuery = async () => { const data = await fetchData(inputValue); setResult(data); } ``` 使用 async/await 处理异步操作[^3] 5. **结果展示**: ```jsx <textarea readOnly value={result} /> ``` 使用只读文本框展示结果[^5] ### 实际应用建议 1. **添加校验**:在查询前验证输入格式 2. **错误处理**:善网络请求的错误处理 3. **防抖优化**:对频繁查询添加防抖机制 4. **数据格式化**:根据返回数据结构定制展示格式 5. **使用效果钩子**:复杂场景可结合 `useEffect` 管理副作用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值