プロジェクトでクライアント側の検証を行いたいです。ここでの要件は、ユーザーが空白のフォームを送信した場合、または入力フィールドを 1 つもフィールドしなかった場合、通常の html リストを生成する必要があるということです。そのリストの下で、すべての入力フィールドにエラーがある必要があります。入力欄だけでなく、その入力欄のリンクであること。リンクがそのリストに表示されると、ユーザーはそのリンクをクリックできるようになります。そのリンクをクリックした後、彼のフォーカスはテキスト フィールドに設定する必要があります。ここでは、リンクを正しく作成できましたが、フォーカスを設定できません。だからここに私のコーヒースクリプト:
$(document).ready ->
# first fetch all input field who have errors.
errorElements = $('.content').find('.help-inline').prev()
ul = $('<ul id="errorlist"></ul>')
errorElements.each (i) ->
span = $(this).next()
labelText = $(this).parent().parent().find('label')
$(' <li> <a href="#' + $(this).attr('id') + '" class="errorlink" >' + labelText.text() + ' ' + '(' + span.text() + ')' + '</a></li>').appendTo(ul)
$('#errorcontainer').html(ul)
$(".errorlink").bind "click", (e) ->
# first I am checking it is binding or not.
alert('hello')
$(this).attr(‘href’).setFocus()
HTMLにsimple_formを使用しています。したがって、次のようにhtmlを生成しています:
<div class=' content '>
<form accept-charset="
UTF-8 " action=" /levels/basic-computer/topics" class=" simple_form form-horizontal " enctype=" multipart/form-data " id=" new_topic " method=" post " novalidate=" novalidate ">
<div style=" margin:0;padding:0;display:inline ">
<div class=' form-inputs'>
<div class=" control-group string required topic_title error ">
<label class=" string required control-label " for=" topic_title ">
<abbr title=" required ">
*
</abbr>
Title
</label>
<div class=" controls ">
<input class=" string required " id=" topic_title " name=" topic[title] " size=" 50 " type=" text " value="" />
<span class=" help-inline ">
can't be blank
</span>
</div>
</div>
ここで何が間違っていますか?