3 回答

TA貢獻1877條經(jīng)驗 獲得超6個贊
如果您按照評論建議使用 Blazor,則無需使用 jQuery 來實現(xiàn)此目的:
<form>
<div class="form-inline">
<select class="form-control mr-1" @bind="@FruitType">
<option value="@(string.Empty)">Select</option>
<option value="apple">Apple</option>
<option value="orange">Orange</option>
<option value="pear">Pear</option>
</select>
<input class="form-control mr-1" placeholder="Name" @bind="fruit.Name" />
<input class="form-control" placeholder="Colour" @bind="fruit.Color" />
</div>
</form>
@code {
public string FruitType
{
get => this.fruitType;
set
{
if (this.fruitType == value) return;
this.fruitType = value;
ClearProperties();
}
}
void ClearProperties()
{
fruit.Color = "";
fruit.Name = "";
}
string fruitType = "";
Fruit fruit = new Fruit();
}
https://i.stack.imgur.com/4GkAz.gif

TA貢獻1770條經(jīng)驗 獲得超3個贊
我測試了您的代碼,并通過對選擇輸入以及文本區(qū)域和文本輸入使用包裝形式使其正常工作,如下所示:
<form class="my-form">
<select id="AppSelect" class="form-control form-control-sm border border-secondary" >
<option value="-">--- Select ---</option>
<option value="-">Books</option>
</select>
<input type="text" />
<textarea/>
</form>
如果您想將選擇保留在表單之外,您應(yīng)該更精確地定位您的表單,使用如下類:
$(".form-control-sm").change(function () {
$('form.my-form').find("input['type=text'], textarea").val("");
});
為了可訪問性和不可理解性,一個好的做法是為您的選擇選項設(shè)置可以讀取或使用的值。
編輯:您的輸入在 HTML 中缺少 type="text",這會阻止它們被 css 選擇器選中input[type=text]。

TA貢獻1906條經(jīng)驗 獲得超3個贊
如果您在 CSS 選擇器中省略了它,它就會起作用[type=text]:
$("select.form-control-sm").change(function () {
$(this).closest('form').find("input,textarea").val("");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<select id="AppSelect" class="form-control form-control-sm border border-secondary" >
<option value="-">--- Select ---</option>
<option value="-">Books</option>
<option value="-">Magazines</option>
<option value="-">Newspapers</option>
</select>
<div class="form-row">
<div class="col-sm-8">
<div class="justify-content-center mb-2">
<input class="form-control form-control-sm border border-secondary" id="id0" value="something" />
</div>
</div>
<div class="col-sm-4">
<div class="justify-content-center mb-2">
<input class="form-control form-control-sm border border-secondary" name="name0" value="something" />
</div>
</div>
<div class="col-sm-8">
<div class="justify-content-center mb-2">
<input class="form-control form-control-sm border border-secondary" id="id1" value="something" />
</div>
</div>
<div class="col-sm-4">
<div class="justify-content-center mb-2">
<input class="form-control form-control-sm border border-secondary" name="name1" value="something" />
</div>
</div>
<div class="col-sm-8">
<div class="justify-content-center mb-2">
<input class="form-control form-control-sm border border-secondary" id="id2" value="something" />
</div>
</div>
<div class="col-sm-4">
<div class="justify-content-center mb-2">
<input class="form-control form-control-sm border border-secondary" name="name2" value="something" />
</div>
</div>
</div>
</form>
是的,當(dāng)然——“這是不言而喻的”——你必須將你的所有元素<select>
和<input>
元素嵌入到一個<form>
元素中。否則你.closest('form')
將沒有機會找到任何東西。
我測試它的方式,它不適用于[type=text]
,見下文:
$("select.form-control-sm").change(function () {
$(this).closest('form').find("input[type=text],textarea").val("");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<select id="AppSelect" class="form-control form-control-sm border border-secondary" >
<option value="-">--- Select ---</option>
<option value="-">Books</option>
<option value="-">Magazines</option>
<option value="-">Newspapers</option>
</select>
<div class="form-row">
<div class="col-sm-8">
<div class="justify-content-center mb-2">
<input class="form-control form-control-sm border border-secondary" id="id0" value="something" />
</div>
</div>
<div class="col-sm-4">
<div class="justify-content-center mb-2">
<input class="form-control form-control-sm border border-secondary" name="name0" value="something" />
</div>
</div>
<div class="col-sm-8">
<div class="justify-content-center mb-2">
<input class="form-control form-control-sm border border-secondary" id="id1" value="something" />
</div>
</div>
<div class="col-sm-4">
<div class="justify-content-center mb-2">
<input class="form-control form-control-sm border border-secondary" name="name1" value="something" />
</div>
</div>
<div class="col-sm-8">
<div class="justify-content-center mb-2">
<input class="form-control form-control-sm border border-secondary" id="id2" value="something" />
</div>
</div>
<div class="col-sm-4">
<div class="justify-content-center mb-2">
<input class="form-control form-control-sm border border-secondary" name="name2" value="something" />
</div>
</div>
</div>
</form>
添加回答
舉報