私は c# MVC4 でコーディングしています。
私のcreate.cshtmlで
私はこのコードを持っています:
@{
ViewBag.Title = "My wonderful creation";
}
<script type="text/javascript">
$(document).ready(function() {
$("#word_count").on('keyup', function() {
var words = this.value.match(/\S+/g).length;
if (words > 100)
{
var trimmed = $(this).val().split(/\s+/, 100).join(" ");
$(this).val(trimmed + " ");
}
});
});
</script>
<div class="editor-field">
@Html.TextAreaFor(model => model.mywonderful, new { @id = "word_count" })
@Html.ValidationMessageFor(model => model.mywonderful)
</div>
これは機能しません。ソースを表示すると、コードは次のようになります。
<script type="text/javascript">
$(document).ready(function() {
$("#word_count").on('keyup', function() {
var words = this.value.match(/\S+/g).length;
if (words > 100)
{
var trimmed = $(this).val().split(/\s+/, 100).join(" ");
$(this).val(trimmed + " ");
}
});
});
</script>
<div class="editor-field">
<textarea id="word_count" name="mywonderful" rows="2" cols="20">
</textarea>
<span class="field-validation-valid" data-valmsg-for="mywonderful" data-valmsg-replace="true"></span>
</div>
<script src="/Scripts/jquery-1.9.1.js"></script>
c# mvc で単語数と検証を機能させるにはどうすればよいですか? これは php で行うのは非常に簡単ですが、c# mvc は別の話です。
私はいくつかのテキストエリアに同じコードを使用できるように、プレーンな古いjavascriptを使用することになりました:
<script type="text/javascript">
var maxWords = 100;
function limitLengthInWords(field)
{
var value = field.value,
wordCount = value.split(/\S+/).length - 1,
re = new RegExp("^\\s*\\S+(?:\\s+\\S+){0," + (maxWords - 1) + "}");
if (wordCount >= maxWords)
{
field.value = value.match(re);
}
document.getElementById('description_count').innerHTML = maxWords - wordCount;
}
</script>