У меня есть три модуля/сектоины, которые в основном делают то же самое с некоторыми незначительными отличиями. Я попытался записать основную часть в функцию jquery, поэтому я могу просто назвать ее по мере необходимости, но я не могу правильно ее структурировать. Может ли кто-нибудь показать мне, как структурировать это, пожалуйста?jquery-Как написать этот код в функцию
Это часть мне нужно как отдельную функцию, а затем вызывается другими
var mytextareaFld = $('#ta_holdAll');
var fld_1 = $('#firstname').attr('name')+': '+$('#firstname').val();
var fld_2 = $('#lastname').attr('name')+': '+$('#lastname').val();
var fld_3 = $('#street_number').attr('name')+': '+$('#street_number').val();
mytextareaFld.val(fld_1 +'\n' + fld_2 +'\n' + fld_3);
jsfiddle:http://jsfiddle.net/justmelat/v4sZb/
HTML/JQuery код ниже:
<form>
<p>First name: <input type="text" name="firstname" id="firstname" value="Paul"/></p>
<p>Last name: <input type="text" name="lastname" id="lastname" value="Ryan" /></p>
<p>Street #: <input type="text" name="street_number" id="street_number" value="4605"/></p>
<p>Address: <input type="text" name="address" id="address"/></p>
<p>City: <input type="text" name="city" id="city" /></p>
<p>State: <input type="text" name="state" id="state"/>
<span id="myzip">Zip:</span> <input type="text" name="zip" id="zip" />
<br /><br />
<span id="allInfo">All Info:</span> <textarea id="ta_holdAll" rows="10" cols="30"></textarea><div id="charCnt"></div><br /><br />
<input type="button" value="Add to Field" id="addField">
</form>
$(document).ready(function(){
$('#addField').on('click',function(){
var mytextareaFld = $('#ta_holdAll');
var fld_1 = $('#firstname').attr('name')+': '+$('#firstname').val();
var fld_2 = $('#lastname').attr('name')+': '+$('#lastname').val();
var fld_3 = $('#street_number').attr('name')+': '+$('#street_number').val();
mytextareaFld.val(fld_1 +'\n' + fld_2 +'\n' + fld_3);
});
$('#allInfo').on('click',function(){
var mytextareaFld = $('#ta_holdAll');
var fld_1 = $('#firstname').attr('name')+': '+$('#firstname').val();
var fld_2 = $('#lastname').attr('name')+': '+$('#lastname').val();
var fld_3 = $('#street_number').attr('name')+': '+$('#street_number').val();
mytextareaFld.val(fld_1 +'\n' + fld_2 +'\n' + fld_3);
var $mytextareaFld = $('#ta_holdAll');
var $outPutCount = $("#charCnt");
var $ofText = " characters of 1000 remaining";
var val = $mytextareaFld.val();
var val2 = $outPutCount.text(val.length).append("<strong>"+$ofText+"</strong>");
});
$("#firstname,#lastname, #street_number").blur(function(){
var mytextareaFld = $('#ta_holdAll');
var fld_1 = $('#firstname').attr('name')+': '+$('#firstname').val();
var fld_2 = $('#lastname').attr('name')+': '+$('#lastname').val();
var fld_3 = $('#street_number').attr('name')+': '+$('#street_number').val();
mytextareaFld.val(fld_1 +'\n' + fld_2 +'\n' + fld_3);
});
});
Я добавил 'event' параметр так, что если вы хотите, чтобы вы могли выполнить' event.preventDefault() 'на кликах, если вам необходимо. – lucuma
Wow, THANK You - не знаю, сколько вариантов я использовал, пытаясь заставить это работать. Еще раз спасибо!!! – user1176783
Нет проблем. Если вы приобретете действительно творческий подход, вы можете использовать тип события, чтобы делать разные вещи внутри своей функции, если у вас есть небольшая разница. т.е. 'if (event.type = 'click') делать что-то другое' – lucuma