JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<body>
<p>Phone</p>
<div class="phn-type">
<input type="radio" name="phoneType" class="home" value="Home"/> Home
<input type="radio" name="phoneType" class="mobile" value="Mobile"/> Mobile
<input type="radio" name="phoneType" class="business" value="Business"/> Business
<input type="radio" name="phoneType" class="travelAgent" value="Travel Agent"/> Travel Agent
<br>
<p style="display: inline-block">
<label for="countryCode" class=".country-code">Country Code</label>
<select>
<option value="India">India</option>
<option value="US">US</option>
<option value="UK" selected="selected">UK</option>
<option value="Austria">Austria</option>
</select>
</p>
<p style="display: inline-block">
<label for="phoneNumber" class=".phone-number">Phone Number</label>
<input type="text" class="text" name="phoneNumber" id="phoneNumber" placeholder="(Optional if email provided)"/>
<input type="text" class="text-hidden" name="extension" id="extension" placeholder="Extension"/><br>
</p>
</div>
<input type="checkbox" name="sms" value="smsConfirm" id="smsConfirm">Send my reservation confirmation by SMS<br>
<p>
<select id="smsLanguage">
<option value="English">English</option>
<option value="Hindi">Hindi</option>
<option value="Russian" selected="selected">Russian</option>
<option value="German">German</option>
</select>
</p>
<button id="addButton">Add another plan</button><span>(Add 4 more)</span>
<p>Email</p>
<input type="text" class="text" name="emailAddress" id="emailAddress" placeholder="(Optional if phone number provided)"/>
<label for="">Confirm sms language</label>
<select id="smsLanguage">
<option value="English">English</option>
<option value="Hindi">Hindi</option>
<option value="Russian" selected="selected">Russian</option>
<option value="German">German</option>
</select>
</body>
JavaScript
$(document).ready(function() {
$('#smsLanguage').hide();
$('input:radio').on('change', function(){
var $textHidden = $(this).parents('.phn-type').find('.text-hidden');
$(this).hasClass('mobile') ? $textHidden.hide() : $textHidden.show();
});
$('#smsConfirm').on('change', function(){
$('#smsLanguage').toggle();
});
});
$("#addButton").on('click',duplicate);
var i = 1;
var max = 4;
var original = $('.phn-type');
function duplicate() {
if (i < max+1) {
var clone = original.clone(true,true);
//clone.prop('id', 'duplicater'+i );
clone.insertAfter(original);
//i++;
$("#addButton").prop("disabled",i> max);
}
}