onClick函数不适用于所选选项字段

时间:2018-12-17 15:04:43

标签: javascript jquery selected

我的网页上有一个Paypal按钮,其中包含以下生成的代码:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top" class="center-align" id="paypal">
  <input type="hidden" name="cmd" value="_s-xclick" >
  <input type="hidden" name="hosted_button_id" value="XMMPHFAWFLLRG">
  <input type="image" src="https://www.paypalobjects.com/de_DE/DE/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="Jetzt einfach, schnell und sicher online bezahlen – mit PayPal." ">
  <img alt=""

通过单击“立即购买”徽标,JS应检查是否已选择选项。我正在使用Materialize Framework,那就是选择字段:

<select>
  <option value="0" disabled selected>Kategorie</option>
  <option value="1">Beauty</option>
  <option value="2">Technik</option>
  <option value="3">Deko</option>
</select>

因此没有ID或类名,这是页面上的唯一选择。

我尝试过的Javascript如下:

function isSelected() {
  if (getElementsByTagName("select").value == '0') {
    alert("Bitte eine Kategorie auswählen!");
  }
}

你们如何看待,我可以解决这个问题?我检查了类似的问题,但没有解决。

2 个答案:

答案 0 :(得分:0)

A)如果禁用它,是否还选择了任何意义?只是一个逻辑问题,也许您的框架也可能导致此问题 B)options [selectedIndex] .value是您应该查看的内容

var paypalSelect = getElementsByTagName("select")[0], // only if it really is the first SELECT on your page .. otherwise .. see below
ppsIndex = paypalSelect.selectedIndex, 
ppsValue = paypalSelect.options[ ppsIndex ].value

您可以考虑为其提供一个ID,如下所示:

<select id="paypal_select_Kategorie">…</select>

然后

var paypalSelect = document.querySelector( '#paypal_select_Kategorie' ) // etc.pp.

所以..放在一起: 首先给input:image:submit一个onclick监听器:

onclick=checkCategory(this)

然后添加此功能:

function checkCategory( ppSelect ){
  var ppsIndex = ppSelect.selectedIndex, 
    ppsValue = ppSelect.options[ ppsIndex ].value
  if( parseInt( ppsValue ) == 0 ) console.log( "disabled standard" ); else console.log( "non-standard selection: "+ ppsValue )
}

答案 1 :(得分:-2)

使用JS应该是您的最后选择;)(如果您只想检查是否已选择某项) 尝试在html5上使用require字段并使用验证。 https://www.w3schools.com/tags/att_select_required.asp