我正在使用.prev('label')
从标签中获取以前的文字,但我怎样才能从标签中获取数据或文本两步。
如何从以下代码中获取数据。
HTML:
<tr>
<td width="25%">Name</td>
<td width="75%"><input type="text" name="name" id="name" class="requiredField" /></td>
</tr>
使用Javascript:
<script type="text/javascript">
$(document).ready(function() {
$('form#sponsorshipForm').submit(function() {
$('form#sponsorshipForm .error').remove();
var hasError = false;
$('.requiredField').each(function() {
if(jQuery.trim($(this).val()) == '') {
var labelText = $(this).prev('label').text();
$(this).parent().append('<span class="error">You forgot to enter your '+labelText+'.</span>');
hasError = true;
} else if($(this).hasClass('email')) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if(!emailReg.test(jQuery.trim($(this).val()))) {
var labelText = $(this).prev('label').text();
$(this).parent().append('<span class="error">You entered an invalid '+labelText+'.</span>');
hasError = true;
}
}
});
if(!hasError) {
$('form#sponsorshipForm li.buttons button').fadeOut('normal', function() {
$(this).parent().append('<img src="/wp-content/themes/td-v3/images/template/loading.gif" alt="Loading…" height="31" width="31" />');
});
var formInput = $(this).serialize();
$.post($(this).attr('action'),formInput, function(data){
$('form#contactForm').slideUp("fast", function() {
$(this).before('<p class="thanks"><strong>Thanks!</strong> Your email was successfully sent. I check my email all the time, so I should be in touch soon.</p>');
});
});
}
return false;
});
});
</script>
我如何提取&#34; 名称&#34;因为我这里没有使用标签。
谢谢
答案 0 :(得分:-1)
停止尝试做奇怪的.prev()并获取这样的文字。只需将文本添加为自定义属性,如<input type="" custom-text="Name" />
或....将完整的对象数据添加到javascript字典中,并通过输入的ID或名称引用它以获取其他详细信息,如此...
var a = {};
a["name"] = { name: "Name" }
function getData( which )
{
return a[which];
}
......类似的东西....但请不要在html上走来走去。