0
私は、検証エラーがあることを示す検証メッセージが表示されないとき、私のコードは検証エラーがあるかのように動作していることに気付きました。ここでjquery form validate関数が期待どおりに動作しない
私のjqueryのクリック機能であり、内部の私は、フォームが検証された場合にAJAX呼び出しを作りたい:
で$("#otherFavContainer").on("click", ".btnAddSongTilesToGenre", function (e) {
var name = $('#youTubeNameTxt').val();
var link = $('#youTubeLinkTxt').val();
var len = link.length;
var substr = link.substr(31, len - 31);
var container = $(this).parent().parent().find(".actualTilesContainer");
$(container).slideDown();
var genreId = $(this).attr("name");
$("#hiddenRank").val(genreId);
$("#AddTopTenFavForm").validate().form();
if ($("#AddTopTenFavForm").valid()) {
$.ajax({
beforeSend: function() { ShowAjaxLoader(); },
url: "/Home/AddSong",
type: "POST",
data: $("#AddTopTenFavForm").serialize(),
success: function (data) { HideAjaxLoader(), ShowMsg("Song Added Successfully"), $(container).find('ul').append('<li><a class="savedLinks" href="#" name="' + substr + '" >' + name + '</a> <span name= ' + data + ' class="btnDeleteSong dontDoAnything">x</span></li>'); },
error: function() { HideAjaxLoader(), ShowMsg("Song could not be added, please try again") }
});
$('#youTubeLinkTxt').val('');
$('#youTubeNameTxt').val('');
}
else {
alert("notValid");
}
if ($(e.target).hasClass("dontDoAnything")) {
e.stopPropagation();
return false;
}
});
コードは常に警告メッセージボックスを表示し、他の部分に行くif文。 検証メッセージが表示されないため、検証エラーはありません。ここで
は私の検証ロジックです:
namespace yplaylist.Models
{
[MetadataType(typeof(TopTenFav_Validation))]
public partial class TopTenFav
{
}
public class TopTenFav_Validation
{
[RegularExpression("http://www.youtube.com/watch\\?v=.*", ErrorMessage = "Youtube Link must begin with: http://www.youtube.com/watch?v= ")]
[Required(ErrorMessage = "Youtube link is Required")]
[StringLength(100, ErrorMessage="Song Title cannot exceed 100 characters")]
public string YoutubeLink { get; set; }
[StringLength(100, ErrorMessage = "Youtube link cannot exceed 100 characters")]
[Required(ErrorMessage = "Song title is Required")]
public string Title { get; set; }
}
}
私は私のテキストボックスとすべてのものへのI正しい形式で入力データがOKと思われるが、私のフォームはいくつかの奇妙な理由でまだ有効ではないことをdoublecheck 、 助けてください。ありがとう
出力を確認するにはどうすればよいですか? –
アラートはそれを行うための最も単純で汚い方法です。 FirebugプラグインをFirefoxまたはChrome用に使用している場合は、コンソールを開いて確認できます。 if(window.console) window.console.log($( "#AddTopTenFavForm")。valid()) –