Message block which provides a basic "sms-message" functionality via HTML.
- If message length < 1, a button will be disabled.
- Displaying a message status (length/maxLength).
- Dynamic message status changing.
See jsfiddle
<html> | |
<head> | |
<title> SMS message-box via HTML </title> | |
<style> | |
#message-box { width:150px; } | |
#message-box textarea { width:100%; } | |
#message-box #message-status { float:left; width:30px; margin:3px 0 0 0; } | |
#message-box #message-button:hover { cursor:pointer; } | |
#message-box #message-button { float:right; width:50px; background: green; color:white; } | |
#message-box #message-button:disabled { background:grey; } | |
</style> | |
</head> | |
<div id="message-box"> | |
<textarea id="message-area"></textarea> | |
<div id="message-status"></div> | |
<input type="button" id="message-button" value="send" /> | |
</div> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-beta1/jquery.js"></script> | |
<script> | |
// declare variables | |
var input = $("#message-area"), result = $("#message-status"), button = $("#message-button"), max = 10, success = "green", fail = "red"; | |
// initialize | |
updateResult(null, success); | |
setMaxLength(max); | |
// subscribe on input changes | |
input.bind('input propertychange', function() { | |
var value = $(this).val(), len = value.length; | |
updateResult(len); | |
}); | |
// subscribe on submit button changes | |
button.on("click", buttonClick); | |
/*** INTERNAL METHODS ***/ | |
// set a maximum length | |
function setMaxLength(len){ | |
input.attr("maxlength", len); | |
} | |
// update UI status | |
function updateResult(val){ | |
button.prop('disabled', !val);; | |
result.html( getStatus(val || 0, val < max ? success : fail) ); | |
} | |
// get status (length/max) for the current message | |
function getStatus(val, c){ | |
result.css("color", c); | |
return [val, "/", max].join(""); | |
} | |
// send message handler | |
function buttonClick(){ | |
alert("Your message is: " + input.val()); | |
} | |
</script> | |
</html> |