Search code examples
javajsoup

How can I get disabled from input tag?


I need to get disabled from <input> tag.

HTML snippet is like:

<tr> 
 <td><input type="radio" name="orderChoice" value="1" checked></td> 
 <td>Audi A4, Auto, A/C, $50.00/day</td> 
 <td>user</td> 
 <td>Иванов Иван Иванович 1983-10-03 АВ954326 Святошинським РУ ГУ МВС України у м. Києві 2001-06-05</td> 
 <td>2021-07-10 18:00:00.0</td> 
 <td>2021-07-20 14:00:00.0</td> 
 <td>500.00</td> 
 <td> <input type="checkbox" name="processed" disabled> </td> 
 <td> <input type="checkbox" name="rejected" disabled> </td> 
 <td></td> 
 <td> <input type="checkbox" name="picked" disabled> </td> 
 <td> <input type="checkbox" name="returned" disabled> </td> 
 <td> <input type="checkbox" name="damaged" disabled> </td> 
 <td></td> 
 <td></td> 
 <td> <input type="checkbox" name="paid" disabled> </td> 
</tr>

I have the loop which looks like:

for (Element tableRow : tableRows) { // iterate over all the table rows (tr elements)
    Element row = tableRows.get(tableRow.elementSiblingIndex());
    String vehicle = row.select("tr > td").get(1).text();
    Element td = row.select("tr > td").get(10); // <td> <input type="checkbox" name="picked" disabled> </td>
    Elements checkbox = td.select("td > input[type=checkbox]"); // <input type="checkbox" name="picked" disabled>
    String picked = checkbox.attr("name"); // picked
    tableList.add(new Table(picked, vehicle));
}

and I need to get disabled from input tag.

Can someone suggest me, please, the way how can I get it without specifying the value explicitly, since checkbox can be changed dynamically?


Solution

  • Thanks to @PeterMmmm and @dan1st suggestions, I've solved using attributes().hasKey("disabled") and first() methods like:

    for (Element tableRow : tableRows) { //iterate over all the table rows (tr elements)
        Element row = tableRows.get(tableRow.elementSiblingIndex());
        String vehicle = row.select("tr > td").get(1).text();
        Element td = row.select("tr > td").get(10);
        Element input = td.select("td > input[type=checkbox]").first();
        Elements checkbox = td.select("td > input[type=checkbox]");
        String picked = checkbox.attr("name");
        if (input.attributes().hasKey("disabled")) {
            //...
        } else {
            //...
        }
    }