关键词:
【中文标题】JavaScript-如何使用输入字段动态创建多个 div【英文标题】:JavaScript- how to create dynamically multiple divs with inputs field 【发布时间】:2015-04-09 07:01:35 【问题描述】:我必须创建 3 个输入文本框来获取有关姓名和电子邮件地址的用户输入。 我必须动态创建它,即当用户点击电子邮件输入字段时,应该创建所有三个元素的新行。 这是一行 3 个输入的代码:
<div class='row' id="inputcontainer">
<div class="form-group clearfix" >
<div class="col-md-2 col-md-offset-2">
<div class="form-text-field first-name">
<label>First name</label>
<input type="text" id="firstName10" class="signup-input" name="" placeholder="">
</div>
</div>
<div class="col-md-2">
<div class="form-text-field last-name">
<label>Last name</label>
<input type="text" id="lastName0" class="signup-input" name="" placeholder="optional">
</div>
</div>
<div class="col-md-4">
<div class="form-text-field email">
<div>
<label>Email</label>
<input type="text" data-index="0" id="inputMail0" class="signup-input text-value " name="email[0]" placeholder="e.g. example@url.com"/>
<span class="common-sprite disNone sign-up-cross first"></span>
</div>
</div>
</div>
</div>
</div>
如何动态创建?
我正在使用以下代码进行克隆,它克隆了多次而不是 1
maxIndex = 0;
$('form').on('input','.email',function()
$(this).parent().find('.common-sprite').removeClass('disNone');
var lastmail = $(this); if(($(this).val().length > 0)&&(lastmail.data('index') == maxIndex))
var count = $('.row.inputcontainer').length;
console.log(count);
maxIndex++;
var clone = $('#template').clone(true).attr('id', '');
clone.find('.firstName[id=firstName'+(maxIndex-1)+']').attr('id', 'firstName' + maxIndex).attr('name', 'first[' + maxIndex +']').addClass('signup-input firstName').val('');
clone.find('.lastName[id=lastName'+(maxIndex-1)+']').attr('id', 'lastName' + maxIndex).attr('name', 'last[' + maxIndex +']').addClass('signup-input lastName').val('');
clone.find('.email[id=inputMail'+(maxIndex-1)+']').attr('id', 'inputMail' + maxIndex).attr('name', 'email[' + maxIndex +']').data('index', maxIndex).addClass('signup-input text-value email').val('');
$('.inputcontainer').append(clone);
【问题讨论】:
【参考方案1】:像这样?我使用.blur()
来触发动态添加,这样如果您在电子邮件输入中键入内容并在其外部单击,则会显示接下来的 3 行信息。我还添加了一些类来帮助 jquery 更快、更可靠地找到元素。我每次都使用clone()
重新创建3行的相同结构。
$(document).ready(function()
$('.email').on('blur', function()
if($(this).val().length > 0)
var count = $('.row').length;
console.log(count);
var clone = $('#template').clone(true).attr('id', '');
clone.find('.firstName').attr('id', 'firstName' + count).val('');
clone.find('.lastName').attr('id', 'lastName' + count).val('');
clone.find('.email').attr('id', 'inputMail' + count).val('');
$('body').append(clone);
);
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='row inputcontainer' id="template">
<div class="form-group clearfix" >
<div class="col-md-2 col-md-offset-2">
<div class="form-text-field first-name">
<label>First name</label>
<input type="text" id="firstName0" class="signup-input firstName" name="" placeholder=""/>
</div>
</div>
<div class="col-md-2">
<div class="form-text-field last-name">
<label>Last name</label>
<input type="text" id="lastName0" class="signup-input lastName" name="" placeholder="optional"/>
</div>
</div>
<div class="col-md-4">
<div class="form-text-field email">
<div>
<label>Email</label>
<input type="text" data-index="0" id="inputMail0" class="signup-input text-value email" name="email[0]" placeholder="e.g. example@url.com"/>
<span class="common-sprite disNone sign-up-cross first"></span>
</div>
</div>
</div>
</div>
</div>
希望这会有所帮助!
【讨论】:
问题是它们必须与我最初创建的类相同 @saritrotshild,是的,这是你不想要的吗?为什么? id 必须是唯一的,但类不必是唯一的。我更改了输入的 id 以便它们是唯一的...如果您希望整行是唯一的,您可以对行 id 实现相同的计数。 @ndubitablee- 我正在使用以下代码进行克隆,它克隆了多次而不是 1: @saritrotshild 我不明白你想要什么,这使得我的回答不足以帮助你解决动态复制问题......【参考方案2】:这和你想要的相似吗?
$(document).on("blur",".add",function()
$("#inputcontainer").append("<br />");
$("#inputcontainer").append("First Name <input type='text' class='signup-input' name='' placeholder='' /><br />");
$("#inputcontainer").append("last Name <input type='text' class='signup-input' name='' placeholder='optional' /><br />");
$("#inputcontainer").append("Email Address <input type='text' data-index='0' class='signup-input text-value add' name='email[0]' placeholder='e.g. example@url.com' /><br />");
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='row' id="inputcontainer">
<div class="form-group clearfix t" >
<div class="col-md-2 col-md-offset-2">
<div class="form-text-field first-name">
<label>First name</label>
<input type="text" id="firstName10" class="signup-input" name="" placeholder="">
</div>
</div>
<div class="col-md-2">
<div class="form-text-field last-name">
<label>Last name</label>
<input type="text" id="lastName0" class="signup-input" name="" placeholder="optional">
</div>
</div>
<div class="col-md-4">
<div class="form-text-field email">
<div>
<label>Email</label>
<input type="text" data-index="0" id="inputMail0" class="signup-input text-value add" name="email[0]" placeholder="e.g. example@url.com"/>
<span class="common-sprite disNone sign-up-cross first"></span>
</div>
</div>
</div>
</div>
</div>
在电子邮件文本框中输入内容,然后离开以创建新的文本框。
【讨论】:
已更新,它包含一个动态的表单。我现在正在处理 css 来整理一下。 @saritrotshild 现在看看。 @Kylet-我觉得你不明白这个问题。所有 3 个输入必须在同一行。如果用户单击电子邮件字段,则必须创建具有 3 个输入的全新行 @saritrotshild 已更新。 您不应多次使用同一个 ID,ID 用于定位特定元素(其中之一)。如何从 React.js 中的多个输入输入字段创建列表?
】如何从React.js中的多个输入输入字段创建列表?【英文标题】:HowdoIcreatealistfrommultipleinputinputfieldsinReact.js?【发布时间】:2018-06-1803:35:08【问题描述】:我知道如何使用一个输入文本字段创建名称列表。如何创建具有名字输入... 查看详情
如何在javascript中使用多个(a * b)两个输入文本值并动态显示它?
】如何在javascript中使用多个(a*b)两个输入文本值并动态显示它?【英文标题】:Howtomultiple(a*b)twoinputtextvalueandshowitDynamiclywithtextchangeinjavascript?【发布时间】:2016-09-0400:26:21【问题描述】:我想显示客户必须支付的金额,我的输... 查看详情
如何使用 JavaScript 创建具有多个可选参数的搜索?
】如何使用JavaScript创建具有多个可选参数的搜索?【英文标题】:HowcanIcreateasearchwithmultiple,optional,parametersusingJavaScript?【发布时间】:2019-11-1811:58:08【问题描述】:我目前有什么“作品”,但是每个参数都取决于最后一个。我的... 查看详情
如何循环动态生成的按钮并相应地创建输入字段
】如何循环动态生成的按钮并相应地创建输入字段【英文标题】:Howtoloopoverdynamicallygeneratedbuttonsandcreateinputfieldaccordingly【发布时间】:2021-10-0416:09:54【问题描述】:如何遍历动态生成的按钮,这些按钮的某些ID相同,而另一些ID... 查看详情
动态表单 - 如何使用反应钩子更新“onChange”事件中多个表单字段的值?
】动态表单-如何使用反应钩子更新“onChange”事件中多个表单字段的值?【英文标题】:DynamicForms-Howtoupdatethevalueofmultipleformfieldson\'onChange\'eventusingreacthooks?【发布时间】:2021-10-1208:39:01【问题描述】:使用基于类的组件,我们对... 查看详情
如何在 Angular 9 中使用向上、向下、向左和向右箭头键导航动态输入和选择表内的字段?
】如何在Angular9中使用向上、向下、向左和向右箭头键导航动态输入和选择表内的字段?【英文标题】:HowtoNavigatethedynamicinputandselectfieldinsidethetablewithUP,DOWN,LEFTandRIGHTarrowkeysinAngular9?【发布时间】:2021-09-0304:40:04【问题描述】:有... 查看详情
用 javascript 填充输入搜索字段(字段动态显示结果)
】用javascript填充输入搜索字段(字段动态显示结果)【英文标题】:Fillinputsearchfieldwithjavascript(fielddynamicallydisplaysresults)【发布时间】:2020-11-2308:45:38【问题描述】:我正在尝试使用javascript自动填写搜索字段。网站在输入时实时... 查看详情
如何在 VueJS 中动态创建输入字段
】如何在VueJS中动态创建输入字段【英文标题】:HowtodynamicallycreateInputFieldsinVueJS【发布时间】:2019-11-2511:13:44【问题描述】:我正在尝试在旅途中动态添加或删除输入字段。我从这里https://smarttutorials.net/dynamically-add-or-remove-input-t... 查看详情
如何更改多个填充的复选框输入字段值?
...我正在寻找解决方案,如何更改多个填充的复选框-使用JavaScript帮助输入字段值。如果选中复选框,如何将值从yes更改为no和no到yes。这是我使用的部分代码:html表单:<formmethod="pos 查看详情
如果数据库失败,如何保留动态创建的输入字段值?
】如果数据库失败,如何保留动态创建的输入字段值?【英文标题】:Howtoretaindynamicallycreatedinputfieldsvaluesifdatabasefails?【发布时间】:2012-12-1607:53:46【问题描述】:我有一个大约70个输入字段的大表单,表单中有可以创建其他输... 查看详情
从动态输入字段 JavaScript 读取文本
】从动态输入字段JavaScript读取文本【英文标题】:ReadingTextFromDynamicInputFieldJavaScript【发布时间】:2020-05-2417:21:07【问题描述】:我有一个网站,您可以在其中输入文本到输入字段,然后按“添加新行”以添加另一个输入字段。... 查看详情
如何在多个文件输入中动态填充文件
...【发布时间】:2020-04-0801:04:33【问题描述】:我正在使用JavaScript库here选择多个图像并通过表单将它们保存在数据库中,当我编辑表单时,我从数据中获取图像并像这样填充。<script>varupload=newFileUploadWithPreview(\ 查看详情
我在使用 Javascript 或 Jquery 创建具有字符串计数的动态字段时遇到问题
】我在使用Javascript或Jquery创建具有字符串计数的动态字段时遇到问题【英文标题】:IhaveanissuetocreatedynamicfieldswithstringcountusingJavascriptORJquery【发布时间】:2012-06-0808:54:51【问题描述】:我在使用JavaScript或jQuery创建具有string计数... 查看详情
仅使用纯javascript在单击按钮时动态生成表单输入字段递增和递减
】仅使用纯javascript在单击按钮时动态生成表单输入字段递增和递减【英文标题】:Dynamicallygenerateforminputfiledsincrementanddecrementonclickofbuttonusingpurejavascriptonly【发布时间】:2019-10-0203:38:47【问题描述】:ES6/Purejavascript/无框架或jquery/... 查看详情
从 json 动态创建的 Javascript 表单输入,需要将对象映射到另一个对象的正确字段并保存
】从json动态创建的Javascript表单输入,需要将对象映射到另一个对象的正确字段并保存【英文标题】:Javascriptforminputscreateddynamicallyfromjsonandneedtomapobjecttoproperfieldfromanotherobjectandsave【发布时间】:2012-12-1417:24:44【问题描述】:我... 查看详情
使用 VueJs 添加动态输入字段
...19【问题描述】:我正在使用Laravel5.7&VueJs2.5.*...我知道如何动态添加输入字段,但对于我的应用程序,我不明白该怎么做。我有“TicketInvoice.Vue”,在那个页面我有一个引导模式来创建和更新我的发票。我有2个单独的DB表,一... 查看详情
使用动态创建的输入字段插入多条记录
】使用动态创建的输入字段插入多条记录【英文标题】:multiplerecordsinsertionwithdynamicallycreatedinputfields【发布时间】:2016-01-0405:11:06【问题描述】:基本上这就是我在将新记录保存到我的数据库时使用eloqouent所做的事情(请参阅下... 查看详情
除了使用javascript的输入之外,如何删除每个输入的oninvalid?
】除了使用javascript的输入之外,如何删除每个输入的oninvalid?【英文标题】:Howtoremoveoninvalidforeveryinputexceptoneusingjavascript?【发布时间】:2021-06-2715:53:27【问题描述】:我创建了一个包含一些输入字段的表单,用户需要填写至少... 查看详情