2010-05-31 74 views
3

我試圖檢查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

回答

2

在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

1

我希望這將是有用的人:

此代碼

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