jQuery:检查表单提交时val()是否具有特定值

问题描述:

我试图检查val()是否具有特定值或不在表单内,如果是这样删除内容/阻止提交表单取决于两个字段是否都填入(stringOne和stringTwo)。每个输入字段都有一个默认文本,第一个是“Namn,telefonnr,sökord”,第二个是“Område,plats,or”。如果用户只填写第一个字段,则必须在传递表单字符串之前清除第二个字段,反之亦然。 Like so -jQuery:检查表单提交时val()是否具有特定值

// "This" refers to the form's submit button 
if (($(this).siblings('input.stringOne').val("Namn, telefonnr, sökord")) && ($(this).siblings('input.stringTwo').val("Område, plats, ort"))) { 
    return false; // If nothing's filled in, then do not submit 
} else { 
    // If either field is not filled in, clear it 
    if ($(this).siblings('input.stringOne').val("Namn, telefonnr, sökord")) { 
     $(this).siblings('input.stringOne').val() == ''; 
    } 
    if ($(this).siblings('input.stringTwo').val("Område, plats, ort")) { 
     $(this).siblings('input.stringTwo').val() == ''; 
    } 
} 

jQuery version 1.2.6。

+0

jQuery版本1.2.6?为什么? O.o – Gavrisimo 2010-05-31 15:12:16

+0

是的,很遗憾,目前无法升级网站的脚本。 – 2010-05-31 15:21:52

在jQuery中,当你在val()里面放置一个值时,你是设置为的值。

$('myElement').val() // returns the value 

$('myElement').val('some string') // sets the value 

.val() - http://api.jquery.com/val/

var $strOne = $(this).siblings('input.stringOne'); 
var $strTwo = $(this).siblings('input.stringTwo'); 

// "This" refers to the form's submit button 
if ((!$strOne.val() || $strOne.val() == "Namn, telefonnr, sökord") && (!$strTwo.val() || $strTwo.val() == "Område, plats, ort") { 
    return false; // If nothing's filled in, then do not submit 
} else { 
    // If either field is not filled in, clear it 
    if ($strOne.val() == "Namn, telefonnr, sökord") { 
     $strOne.val(""); 
    } 
    if ($strTwo.val() == "Område, plats, ort") { 
     $strTwo.val(""); 
    } 
} 
+0

我正要得出这样的结论:)试图检查val()=='',但它没有给出任何结果。 – 2010-05-31 15:20:43

+0

@Staffan - 我对你使用'.siblings()'有点困惑。只有2个输入字段,'.stringOne'和'.stringTwo'? – user113716 2010-05-31 15:23:12

+0

帕特里克你是对的。早些时候,我指的是一个单一的输入字段,因此使用了兄弟姐妹。我将删除它们:) – 2010-05-31 15:25:20

我希望这将是有用的人:

此代码

if ($('#my_text_field').val() == "Clear Me") { 
    $('#my_text_field').val(""); 

可以写成

$('#my_text_field[value="Clear Me"]').val(""); 

更妙

$('#my_text_field[value="Clear Me"]').val("").change(); 

的.change()具有如下效果:$( '#my_text_field [值= “清除我”]'),其值已经改变之后将不匹配#my_text_field