JSFiddle - React, Tailwind, and code Playground
HTML
<div id="report-modal">
<h2>You are providing feedback.</h2>
<form id="full-report-form" method="POST" action="/myURL" role="form">
<div id="address-field">
<label for="address"><strong>Is there a problem with the address of this home?</strong></label>
<input type="radio" value="yes" name="address" />Yes
<input type="radio" value="no" name="address" />No
</div>
<div id="rgb-field">
<label for="image"><strong>Was the image of this home missing or incorrect?</strong></label>
<input type="radio" value="yes" name="rgb" />Yes
<input type="radio" value="no" name="rgb" />No
</div>
<button id="send">Send Feedback</button>
</form>
</div>
CSS
body {
font-family: 'Arial', sans-serif;
}
div {
margin: 1em 0;
}
JavaScript
var freeFormLimit = 160;
var addressFormLimit = 35;
var addressResponse, rgbResponse;
// Address Input
var addressInput = 'input[name=address]';
var addressInputValue = $('input[name=address]:checked').val();
$(addressInput).on('click', function(e) {
var addressInputValue = $('input[name=address]:checked').val();
if (addressInputValue === 'yes') {
var addressDiv = document.getElementById('address-form');
addressDiv.innerHTML = '<label for="address"><strong>Please type the correct address:</strong></label> ' +
'<textarea id="address-field" name="address" rows="1" maxlength="' + addressFormLimit + '"></textarea> <div id="address-limit"></div>';
$('#address-limit').html(addressFormLimit + ' characters remaining');
$('#address-field').keyup(function() {
var text_length = $('#address-field').val().length;
var text_remaining = addressFormLimit - text_length;
$('#address-limit').html(text_remaining + ' characters remaining');
addressResponse = $('#address-field').val();
});
addressResponse = $('#address-field').val();
} else if (addressInputValue === 'no') {
addressResponse = addressInputValue;
}
});
// Image Input
var rgbInput = 'input[name=rgb]';
var rgbInputValue = $('input[name=rgb]:checked').val();
$(rgbInput).on('click', function(e) {
var rgbInputValue = $('input[name=rgb]:checked').val();
if (rgbInputValue === 'yes') {
var rgbDiv = document.getElementById('rgb-form');
rgbDiv.innerHTML = '<label for="rgb"><strong>Please explain:</strong></label> ' +
'<textarea id="rgb-field" name="rgb" rows="1" maxlength="' + freeFormLimit + '"></textarea> <div id="rgb-limit"></div>';
$('#rgb-limit').html(freeFormLimit + ' characters remaining');
$('#rgb-field').keyup(function() {
var text_length = $('#rgb-field').val().length;
var text_remaining = freeFormLimit - text_length;
$('#rgb-limit').html(text_remaining + ' characters remaining');
rgbResponse =...